Description:

Workflow begin

This tutorial comes from Seurat

Load required packages

library(dplyr)
library(Seurat)
library(leiden)
library(ggplot2)

Load data

Input is a directory that contains fastq files

previous_time <- proc.time()[3]
Estrus.data <-Read10X(data.dir ="/home/nguyen/Estrus_cellranger_count/Estrus_Raw/")
proc.time()[3] - previous_time
elapsed 
   8.09 
  • View(Estrus.data) - run this command to investigate the output
  • Current dataset:
    • 31253 genes
    • 6599 cells

Initialize the Seurat object

  • Initialize the Seurat object with the raw (non-normalized data).
  • Filter out genes that are detected in less than 3 cells
  • Filter out cells that have less than 200 genes expressed
previous_time <- proc.time()[3]
Estrus <- CreateSeuratObject(counts = Estrus.data, project = "Estrus", min.cells = 3, min.features = 200)
proc.time()[3] - previous_time
elapsed 
  1.876 
Estrus
An object of class Seurat 
19420 features across 6481 samples within 1 assay 
Active assay: RNA (19420 features, 0 variable features)

*Output: + 19420 genes + 6481 cells

Calculate the percentage of mitochondrial genes

  • Add “percent.mt” column to object metadata
  • Percentage of mitochondrial genes is stored in “percent.mt”
  • “^mt-” means strings start with mt (lowercase mt for mice, uppercase MT for human)
Estrus[["percent.mt"]] <- PercentageFeatureSet(Estrus, pattern = "^mt-")
# This is the list of genes that start with mt
mito_genes <- grep("^mt-", rownames(Estrus) , ignore.case=T, value=T)
print(mito_genes)
 [1] "mt-Nd1"  "mt-Nd2"  "mt-Co1"  "mt-Co2"  "mt-Atp8" "mt-Atp6" "mt-Co3"  "mt-Nd3"  "mt-Nd4l" "mt-Nd4"  "mt-Nd5"  "mt-Nd6"  "mt-Cytb"
# This is the data in "percent.mt" column
percent_mito <- FetchData(object = Estrus, vars = "percent.mt") #how to fetch data
head(percent_mito)
# Visualize QC metrics as a violin plot
VlnPlot(Estrus, features = c("nFeature_RNA", "nCount_RNA", "percent.mt"), ncol = 3)

# FeatureScatter is typically used to visualize feature-feature relationships, but can be used
# for anything calculated by the object, i.e. columns in object metadata, PC scores etc.
plot1 <- FeatureScatter(Estrus, feature1 = "nCount_RNA", feature2 = "percent.mt")
plot2 <- FeatureScatter(Estrus, feature1 = "nCount_RNA", feature2 = "nFeature_RNA")
plot1 + plot2

Filter out low-quality cells

  • We filter out cells that have unique feature counts over 6000
  • Because any cell that has more than 6000 genes are likely doublets
  • Note: Seurat tutorial used 2500 instead of 6000
  • We also filter out cells that have more than 5% mitochondrial genes
  • Because those are likely to be nonviable cells
previous_time <- proc.time()[3]
Estrus <- subset(Estrus, subset = nFeature_RNA < 6000 & percent.mt < 5)
proc.time()[3] - previous_time
elapsed 
  0.235 
Estrus
An object of class Seurat 
19420 features across 2174 samples within 1 assay 
Active assay: RNA (19420 features, 0 variable features)
  • After filtering step, the dataset is left with
  • 19420 genes
  • 2174 cells

Normalizing the data

  • Perform log-normalization method
  • Feature counts for each cell are divided by the total counts for that cell and multiplied by the scale.factor
  • scale.factor default value = 10,000
  • This is then natural-log transformed using log1p
previous_time <- proc.time()[3]
Estrus <- NormalizeData(Estrus, normalization.method = "LogNormalize", scale.factor = 10000)
Performing log-normalization
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
proc.time()[3] - previous_time
elapsed 
  0.223 

Identification of highly variable features (feature selection)

previous_time <- proc.time()[3]
Estrus <- FindVariableFeatures(Estrus, selection.method = "disp", nfeatures = 5000)
Calculating gene means
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
Calculating gene variance to mean ratios
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
proc.time()[3] - previous_time
elapsed 
    0.4 

Plotting highly variable features

# Identify the 10 most highly variable genes
top10 <- head(VariableFeatures(Estrus), 10)
top10
 [1] "Hbb-bs" "Hba-a1" "Hba-a2" "Dcpp3"  "Hbb-bt" "Ccl21a" "Apoe"   "Cd74"   "Ccl5"   "Dcpp1" 
#{r, fig.width=10,fig.height=11}
#df %>% ggplot(aes(x = x, y = y)) + geom_point()
# Plot variable features with and without labels
plot1 <- VariableFeaturePlot(Estrus)
plot2 <- LabelPoints(plot = plot1, points = top10, repel = TRUE)
When using repel, set xnudge and ynudge to 0 for optimal results
plot1 + plot2 
Warning: Removed 2 rows containing missing values (geom_point).
Warning: Removed 2 rows containing missing values (geom_point).

Regress out data and perform scaling

  • Regressing out total counts per cell and percent.mt before scaling.
  • Take out mitochondrial genes before scaling (analyzing) the data
  • Because mito_genes shouldn’t be accounted for cell population analysis.
previous_time <- proc.time()[3]
all.genes <- rownames(Estrus)
Estrus <- ScaleData(Estrus, features = all.genes, vars.to.regress = c("nCount_RNA","percent.mt"), scale.max = 10)
Regressing out nCount_RNA, percent.mt

  |                                                                                                                                  
  |                                                                                                                            |   0%
  |                                                                                                                                  
  |=                                                                                                                           |   0%
  |                                                                                                                                  
  |=                                                                                                                           |   1%
  |                                                                                                                                  
  |==                                                                                                                          |   1%
  |                                                                                                                                  
  |==                                                                                                                          |   2%
  |                                                                                                                                  
  |===                                                                                                                         |   2%
  |                                                                                                                                  
  |===                                                                                                                         |   3%
  |                                                                                                                                  
  |====                                                                                                                        |   3%
  |                                                                                                                                  
  |====                                                                                                                        |   4%
  |                                                                                                                                  
  |=====                                                                                                                       |   4%
  |                                                                                                                                  
  |======                                                                                                                      |   4%
  |                                                                                                                                  
  |======                                                                                                                      |   5%
  |                                                                                                                                  
  |=======                                                                                                                     |   5%
  |                                                                                                                                  
  |=======                                                                                                                     |   6%
  |                                                                                                                                  
  |========                                                                                                                    |   6%
  |                                                                                                                                  
  |========                                                                                                                    |   7%
  |                                                                                                                                  
  |=========                                                                                                                   |   7%
  |                                                                                                                                  
  |=========                                                                                                                   |   8%
  |                                                                                                                                  
  |==========                                                                                                                  |   8%
  |                                                                                                                                  
  |===========                                                                                                                 |   8%
  |                                                                                                                                  
  |===========                                                                                                                 |   9%
  |                                                                                                                                  
  |============                                                                                                                |   9%
  |                                                                                                                                  
  |============                                                                                                                |  10%
  |                                                                                                                                  
  |=============                                                                                                               |  10%
  |                                                                                                                                  
  |=============                                                                                                               |  11%
  |                                                                                                                                  
  |==============                                                                                                              |  11%
  |                                                                                                                                  
  |==============                                                                                                              |  12%
  |                                                                                                                                  
  |===============                                                                                                             |  12%
  |                                                                                                                                  
  |================                                                                                                            |  13%
  |                                                                                                                                  
  |=================                                                                                                           |  13%
  |                                                                                                                                  
  |=================                                                                                                           |  14%
  |                                                                                                                                  
  |==================                                                                                                          |  14%
  |                                                                                                                                  
  |==================                                                                                                          |  15%
  |                                                                                                                                  
  |===================                                                                                                         |  15%
  |                                                                                                                                  
  |===================                                                                                                         |  16%
  |                                                                                                                                  
  |====================                                                                                                        |  16%
  |                                                                                                                                  
  |====================                                                                                                        |  17%
  |                                                                                                                                  
  |=====================                                                                                                       |  17%
  |                                                                                                                                  
  |======================                                                                                                      |  17%
  |                                                                                                                                  
  |======================                                                                                                      |  18%
  |                                                                                                                                  
  |=======================                                                                                                     |  18%
  |                                                                                                                                  
  |=======================                                                                                                     |  19%
  |                                                                                                                                  
  |========================                                                                                                    |  19%
  |                                                                                                                                  
  |========================                                                                                                    |  20%
  |                                                                                                                                  
  |=========================                                                                                                   |  20%
  |                                                                                                                                  
  |=========================                                                                                                   |  21%
  |                                                                                                                                  
  |==========================                                                                                                  |  21%
  |                                                                                                                                  
  |===========================                                                                                                 |  21%
  |                                                                                                                                  
  |===========================                                                                                                 |  22%
  |                                                                                                                                  
  |============================                                                                                                |  22%
  |                                                                                                                                  
  |============================                                                                                                |  23%
  |                                                                                                                                  
  |=============================                                                                                               |  23%
  |                                                                                                                                  
  |=============================                                                                                               |  24%
  |                                                                                                                                  
  |==============================                                                                                              |  24%
  |                                                                                                                                  
  |==============================                                                                                              |  25%
  |                                                                                                                                  
  |===============================                                                                                             |  25%
  |                                                                                                                                  
  |================================                                                                                            |  25%
  |                                                                                                                                  
  |================================                                                                                            |  26%
  |                                                                                                                                  
  |=================================                                                                                           |  26%
  |                                                                                                                                  
  |=================================                                                                                           |  27%
  |                                                                                                                                  
  |==================================                                                                                          |  27%
  |                                                                                                                                  
  |==================================                                                                                          |  28%
  |                                                                                                                                  
  |===================================                                                                                         |  28%
  |                                                                                                                                  
  |===================================                                                                                         |  29%
  |                                                                                                                                  
  |====================================                                                                                        |  29%
  |                                                                                                                                  
  |=====================================                                                                                       |  29%
  |                                                                                                                                  
  |=====================================                                                                                       |  30%
  |                                                                                                                                  
  |======================================                                                                                      |  30%
  |                                                                                                                                  
  |======================================                                                                                      |  31%
  |                                                                                                                                  
  |=======================================                                                                                     |  31%
  |                                                                                                                                  
  |=======================================                                                                                     |  32%
  |                                                                                                                                  
  |========================================                                                                                    |  32%
  |                                                                                                                                  
  |========================================                                                                                    |  33%
  |                                                                                                                                  
  |=========================================                                                                                   |  33%
  |                                                                                                                                  
  |==========================================                                                                                  |  33%
  |                                                                                                                                  
  |==========================================                                                                                  |  34%
  |                                                                                                                                  
  |===========================================                                                                                 |  34%
  |                                                                                                                                  
  |===========================================                                                                                 |  35%
  |                                                                                                                                  
  |============================================                                                                                |  35%
  |                                                                                                                                  
  |============================================                                                                                |  36%
  |                                                                                                                                  
  |=============================================                                                                               |  36%
  |                                                                                                                                  
  |=============================================                                                                               |  37%
  |                                                                                                                                  
  |==============================================                                                                              |  37%
  |                                                                                                                                  
  |===============================================                                                                             |  38%
  |                                                                                                                                  
  |================================================                                                                            |  38%
  |                                                                                                                                  
  |================================================                                                                            |  39%
  |                                                                                                                                  
  |=================================================                                                                           |  39%
  |                                                                                                                                  
  |=================================================                                                                           |  40%
  |                                                                                                                                  
  |==================================================                                                                          |  40%
  |                                                                                                                                  
  |==================================================                                                                          |  41%
  |                                                                                                                                  
  |===================================================                                                                         |  41%
  |                                                                                                                                  
  |===================================================                                                                         |  42%
  |                                                                                                                                  
  |====================================================                                                                        |  42%
  |                                                                                                                                  
  |=====================================================                                                                       |  42%
  |                                                                                                                                  
  |=====================================================                                                                       |  43%
  |                                                                                                                                  
  |======================================================                                                                      |  43%
  |                                                                                                                                  
  |======================================================                                                                      |  44%
  |                                                                                                                                  
  |=======================================================                                                                     |  44%
  |                                                                                                                                  
  |=======================================================                                                                     |  45%
  |                                                                                                                                  
  |========================================================                                                                    |  45%
  |                                                                                                                                  
  |========================================================                                                                    |  46%
  |                                                                                                                                  
  |=========================================================                                                                   |  46%
  |                                                                                                                                  
  |==========================================================                                                                  |  46%
  |                                                                                                                                  
  |==========================================================                                                                  |  47%
  |                                                                                                                                  
  |===========================================================                                                                 |  47%
  |                                                                                                                                  
  |===========================================================                                                                 |  48%
  |                                                                                                                                  
  |============================================================                                                                |  48%
  |                                                                                                                                  
  |============================================================                                                                |  49%
  |                                                                                                                                  
  |=============================================================                                                               |  49%
  |                                                                                                                                  
  |=============================================================                                                               |  50%
  |                                                                                                                                  
  |==============================================================                                                              |  50%
  |                                                                                                                                  
  |===============================================================                                                             |  50%
  |                                                                                                                                  
  |===============================================================                                                             |  51%
  |                                                                                                                                  
  |================================================================                                                            |  51%
  |                                                                                                                                  
  |================================================================                                                            |  52%
  |                                                                                                                                  
  |=================================================================                                                           |  52%
  |                                                                                                                                  
  |=================================================================                                                           |  53%
  |                                                                                                                                  
  |==================================================================                                                          |  53%
  |                                                                                                                                  
  |==================================================================                                                          |  54%
  |                                                                                                                                  
  |===================================================================                                                         |  54%
  |                                                                                                                                  
  |====================================================================                                                        |  54%
  |                                                                                                                                  
  |====================================================================                                                        |  55%
  |                                                                                                                                  
  |=====================================================================                                                       |  55%
  |                                                                                                                                  
  |=====================================================================                                                       |  56%
  |                                                                                                                                  
  |======================================================================                                                      |  56%
  |                                                                                                                                  
  |======================================================================                                                      |  57%
  |                                                                                                                                  
  |=======================================================================                                                     |  57%
  |                                                                                                                                  
  |=======================================================================                                                     |  58%
  |                                                                                                                                  
  |========================================================================                                                    |  58%
  |                                                                                                                                  
  |=========================================================================                                                   |  58%
  |                                                                                                                                  
  |=========================================================================                                                   |  59%
  |                                                                                                                                  
  |==========================================================================                                                  |  59%
  |                                                                                                                                  
  |==========================================================================                                                  |  60%
  |                                                                                                                                  
  |===========================================================================                                                 |  60%
  |                                                                                                                                  
  |===========================================================================                                                 |  61%
  |                                                                                                                                  
  |============================================================================                                                |  61%
  |                                                                                                                                  
  |============================================================================                                                |  62%
  |                                                                                                                                  
  |=============================================================================                                               |  62%
  |                                                                                                                                  
  |==============================================================================                                              |  63%
  |                                                                                                                                  
  |===============================================================================                                             |  63%
  |                                                                                                                                  
  |===============================================================================                                             |  64%
  |                                                                                                                                  
  |================================================================================                                            |  64%
  |                                                                                                                                  
  |================================================================================                                            |  65%
  |                                                                                                                                  
  |=================================================================================                                           |  65%
  |                                                                                                                                  
  |=================================================================================                                           |  66%
  |                                                                                                                                  
  |==================================================================================                                          |  66%
  |                                                                                                                                  
  |==================================================================================                                          |  67%
  |                                                                                                                                  
  |===================================================================================                                         |  67%
  |                                                                                                                                  
  |====================================================================================                                        |  67%
  |                                                                                                                                  
  |====================================================================================                                        |  68%
  |                                                                                                                                  
  |=====================================================================================                                       |  68%
  |                                                                                                                                  
  |=====================================================================================                                       |  69%
  |                                                                                                                                  
  |======================================================================================                                      |  69%
  |                                                                                                                                  
  |======================================================================================                                      |  70%
  |                                                                                                                                  
  |=======================================================================================                                     |  70%
  |                                                                                                                                  
  |=======================================================================================                                     |  71%
  |                                                                                                                                  
  |========================================================================================                                    |  71%
  |                                                                                                                                  
  |=========================================================================================                                   |  71%
  |                                                                                                                                  
  |=========================================================================================                                   |  72%
  |                                                                                                                                  
  |==========================================================================================                                  |  72%
  |                                                                                                                                  
  |==========================================================================================                                  |  73%
  |                                                                                                                                  
  |===========================================================================================                                 |  73%
  |                                                                                                                                  
  |===========================================================================================                                 |  74%
  |                                                                                                                                  
  |============================================================================================                                |  74%
  |                                                                                                                                  
  |============================================================================================                                |  75%
  |                                                                                                                                  
  |=============================================================================================                               |  75%
  |                                                                                                                                  
  |==============================================================================================                              |  75%
  |                                                                                                                                  
  |==============================================================================================                              |  76%
  |                                                                                                                                  
  |===============================================================================================                             |  76%
  |                                                                                                                                  
  |===============================================================================================                             |  77%
  |                                                                                                                                  
  |================================================================================================                            |  77%
  |                                                                                                                                  
  |================================================================================================                            |  78%
  |                                                                                                                                  
  |=================================================================================================                           |  78%
  |                                                                                                                                  
  |=================================================================================================                           |  79%
  |                                                                                                                                  
  |==================================================================================================                          |  79%
  |                                                                                                                                  
  |===================================================================================================                         |  79%
  |                                                                                                                                  
  |===================================================================================================                         |  80%
  |                                                                                                                                  
  |====================================================================================================                        |  80%
  |                                                                                                                                  
  |====================================================================================================                        |  81%
  |                                                                                                                                  
  |=====================================================================================================                       |  81%
  |                                                                                                                                  
  |=====================================================================================================                       |  82%
  |                                                                                                                                  
  |======================================================================================================                      |  82%
  |                                                                                                                                  
  |======================================================================================================                      |  83%
  |                                                                                                                                  
  |=======================================================================================================                     |  83%
  |                                                                                                                                  
  |========================================================================================================                    |  83%
  |                                                                                                                                  
  |========================================================================================================                    |  84%
  |                                                                                                                                  
  |=========================================================================================================                   |  84%
  |                                                                                                                                  
  |=========================================================================================================                   |  85%
  |                                                                                                                                  
  |==========================================================================================================                  |  85%
  |                                                                                                                                  
  |==========================================================================================================                  |  86%
  |                                                                                                                                  
  |===========================================================================================================                 |  86%
  |                                                                                                                                  
  |===========================================================================================================                 |  87%
  |                                                                                                                                  
  |============================================================================================================                |  87%
  |                                                                                                                                  
  |=============================================================================================================               |  88%
  |                                                                                                                                  
  |==============================================================================================================              |  88%
  |                                                                                                                                  
  |==============================================================================================================              |  89%
  |                                                                                                                                  
  |===============================================================================================================             |  89%
  |                                                                                                                                  
  |===============================================================================================================             |  90%
  |                                                                                                                                  
  |================================================================================================================            |  90%
  |                                                                                                                                  
  |================================================================================================================            |  91%
  |                                                                                                                                  
  |=================================================================================================================           |  91%
  |                                                                                                                                  
  |=================================================================================================================           |  92%
  |                                                                                                                                  
  |==================================================================================================================          |  92%
  |                                                                                                                                  
  |===================================================================================================================         |  92%
  |                                                                                                                                  
  |===================================================================================================================         |  93%
  |                                                                                                                                  
  |====================================================================================================================        |  93%
  |                                                                                                                                  
  |====================================================================================================================        |  94%
  |                                                                                                                                  
  |=====================================================================================================================       |  94%
  |                                                                                                                                  
  |=====================================================================================================================       |  95%
  |                                                                                                                                  
  |======================================================================================================================      |  95%
  |                                                                                                                                  
  |======================================================================================================================      |  96%
  |                                                                                                                                  
  |=======================================================================================================================     |  96%
  |                                                                                                                                  
  |========================================================================================================================    |  96%
  |                                                                                                                                  
  |========================================================================================================================    |  97%
  |                                                                                                                                  
  |=========================================================================================================================   |  97%
  |                                                                                                                                  
  |=========================================================================================================================   |  98%
  |                                                                                                                                  
  |==========================================================================================================================  |  98%
  |                                                                                                                                  
  |==========================================================================================================================  |  99%
  |                                                                                                                                  
  |=========================================================================================================================== |  99%
  |                                                                                                                                  
  |=========================================================================================================================== | 100%
  |                                                                                                                                  
  |============================================================================================================================| 100%
Centering and scaling data matrix

  |                                                                                                                                  
  |                                                                                                                            |   0%
  |                                                                                                                                  
  |======                                                                                                                      |   5%
  |                                                                                                                                  
  |============                                                                                                                |  10%
  |                                                                                                                                  
  |===================                                                                                                         |  15%
  |                                                                                                                                  
  |=========================                                                                                                   |  20%
  |                                                                                                                                  
  |===============================                                                                                             |  25%
  |                                                                                                                                  
  |=====================================                                                                                       |  30%
  |                                                                                                                                  
  |===========================================                                                                                 |  35%
  |                                                                                                                                  
  |==================================================                                                                          |  40%
  |                                                                                                                                  
  |========================================================                                                                    |  45%
  |                                                                                                                                  
  |==============================================================                                                              |  50%
  |                                                                                                                                  
  |====================================================================                                                        |  55%
  |                                                                                                                                  
  |==========================================================================                                                  |  60%
  |                                                                                                                                  
  |=================================================================================                                           |  65%
  |                                                                                                                                  
  |=======================================================================================                                     |  70%
  |                                                                                                                                  
  |=============================================================================================                               |  75%
  |                                                                                                                                  
  |===================================================================================================                         |  80%
  |                                                                                                                                  
  |=========================================================================================================                   |  85%
  |                                                                                                                                  
  |================================================================================================================            |  90%
  |                                                                                                                                  
  |======================================================================================================================      |  95%
  |                                                                                                                                  
  |============================================================================================================================| 100%
# Explanations below are from [Seurat](https://satijalab.org/seurat/archive/v3.0/cell_cycle_vignette.html)
# vars.to.regress = RegressOut in Seurat version 1.4 or lower
# However, as the results of this procedure are stored in the scaled data slot (therefore overwriting the output of ScaleData) 
# This functionality is merged into the ScaleData function itself.
proc.time()[3] - previous_time
elapsed 
549.548 

Perform linear dimensional reduction (PCA)

previous_time <- proc.time()[3]
Estrus <- RunPCA(Estrus, features = VariableFeatures(object = Estrus))
PC_ 1 
Positive:  Gm867, 1700016K19Rik, 1700007K13Rik, Ccdc153, Tmem212, Gm19935, Dynlrb2, 1110017D15Rik, Cfap126, Fam166c 
       Fam183b, Vpreb3, Rsph1, Dnali1, Foxj1, Lrrc10b, Sntn, Tctex1d4, 1700024G13Rik, Mlf1 
       Pifo, Dnah12, Prr29, Hdc, 2410004P03Rik, Timp4, Efcab10, Tppp3, 2610028H24Rik, Lrrc51 
Negative:  Rps28, Rps19, Rpl18a, Rpl23a, Rplp0, Rpl13, Rpl37, Rpl32, Rps12, Rps18 
       Rps5, Rps29, Rps24, Rpl37a, Rps7, Rps27a, Rps23, Cd63, Rpl35, Rpl39 
       Rps4x, Rps11, Rpl27a, Rps20, Rps15a, Rps16, Rps3a1, Rpl19, Rpl10, Rps2 
PC_ 2 
Positive:  Cd68, Lcn2, Sprr2f, Arg1, Wfdc2, Sftpd, Pdzk1ip1, Prap1, Cxcl17, Clca1 
       Serpina1e, Fxyd3, Pigr, Ltf, Tmem45b, Ctss, Padi2, Tacstd2, Ly6a, Muc4 
       Padi1, Ckmt1, Trpv6, Fxyd4, Muc1, Pglyrp1, Rnf128, Cndp2, Car2, Alox5ap 
Negative:  Serpinh1, Sparc, Col1a2, Col3a1, Col1a1, Col6a1, Cald1, Bgn, Mgp, Aebp1 
       Col6a2, Igfbp7, Rarres2, Zbtb20, Dcn, Nbl1, Rcn3, Igfbp6, Mdk, Sparcl1 
       Fxyd1, Mfap2, Csrp2, Pbx1, Fxyd6, Col6a3, Col4a1, Gsn, Lgals1, Htra3 
PC_ 3 
Positive:  Tyrobp, Fcer1g, Ctss, Cd52, Csf1r, Cd74, H2-Aa, H2-Ab1, Laptm5, H2-Eb1 
       Aif1, Coro1a, Apoe, C1qc, Lyz2, C1qa, C1qb, H2-DMa, Pld4, Ms4a6c 
       Cx3cr1, Cybb, Ly86, Spi1, Ms4a7, Mpeg1, Trf, Fcgr3, Lst1, Fyb 
Negative:  Plet1, Ovgp1, Krt18, Wfdc18, Spint2, Aldoc, Gstm2, Epcam, Emb, Kctd14 
       Tpd52l1, Clu, Fxyd3, Dcxr, Kcnk1, Hddc2, Agr2, Rbp1, Psmd3, Cd9 
       Cldn22, Cystm1, Cldn7, Ppp1r1b, Gstm1, Rpl41, Mgst1, Tmem218, Krt19, Krt8 
PC_ 4 
Positive:  Clca1, Cxcl17, Pigr, Plac8, Muc4, Prap1, Slc40a1, Ly6a, Serpina1e, Tmem45b 
       Sprr2f, Trpv6, Tacstd2, Tmprss4, Tspan1, Prxl2a, Arg1, Padi2, Fxyd4, Fcgbp 
       Fut9, Lrg1, Ckmt1, Morrbid, Car2, Fbln1, Upk3bl, Ncoa7, Pdzk1ip1, Sult1d1 
Negative:  Kctd14, Gstm2, Ovgp1, Emb, Sdf2l1, Clu, Ctsc, Cbs, Tmem218, Gstm1 
       Slc1a3, Ppp1r1b, Smim14, Lrpap1, Shisa8, Cldn22, Fn1, Agr2, Wfdc18, Rcn1 
       Dkk3, Ncf2, Bex4, Gatm, Ccnd1, Gdpd2, Aldoc, Manf, Selenom, Cyth4 
PC_ 5 
Positive:  Gsn, Pdgfra, Htra3, Mfap4, Dpt, Mfap2, Serpinf1, Ntrk2, Col6a3, Mdk 
       Lpl, Penk, Lama2, Matn2, Col15a1, Gpm6b, Lrp1, Col1a1, Col5a2, Sparcl1 
       Ramp3, Htra1, Ftl1, Spon1, Ramp1, Islr, Col1a2, Plxdc2, Rxfp1, Osr2 
Negative:  Egfl7, Kdr, Ecscr, Cavin2, Pecam1, Cldn5, Cav1, Cdh5, Tie1, Mmrn1 
       Emcn, Flt4, Ushbp1, Mmrn2, Ccl21a, Podxl, Gimap6, S1pr1, Reln, Prox1 
       Adgrf5, Myct1, Gpm6a, Esam, Pard6g, Lyve1, Gimap1, Stmn2, Gimap4, Arhgap29 
proc.time()[3] - previous_time
elapsed 
   5.29 

Examine and visualize PCA results a few different ways

print(Estrus[["pca"]], dims = 1:5, nfeatures = 5)
PC_ 1 
Positive:  Gm867, 1700016K19Rik, 1700007K13Rik, Ccdc153, Tmem212 
Negative:  Rps28, Rps19, Rpl18a, Rpl23a, Rplp0 
PC_ 2 
Positive:  Cd68, Lcn2, Sprr2f, Arg1, Wfdc2 
Negative:  Serpinh1, Sparc, Col1a2, Col3a1, Col1a1 
PC_ 3 
Positive:  Tyrobp, Fcer1g, Ctss, Cd52, Csf1r 
Negative:  Plet1, Ovgp1, Krt18, Wfdc18, Spint2 
PC_ 4 
Positive:  Clca1, Cxcl17, Pigr, Plac8, Muc4 
Negative:  Kctd14, Gstm2, Ovgp1, Emb, Sdf2l1 
PC_ 5 
Positive:  Gsn, Pdgfra, Htra3, Mfap4, Dpt 
Negative:  Egfl7, Kdr, Ecscr, Cavin2, Pecam1 
VizDimLoadings(Estrus, dims = 1:2, reduction = "pca")

DimPlot(Estrus, reduction = "pca") + ggtitle(label = 'Including immune cells')

FeaturePlot(Estrus, reduction = "pca", features = c('Ovgp1', 
                                                    'Foxj1', 'Igf1', 'Pdxk', 
                                                    'Fxyd4', 'Bsg', 
                                                    'Serpina1e', 'Krt19'))

FeaturePlot(Estrus, reduction = "pca", features = c('Dcn', 'Pax8',
                                                    'Ephx2', 
                                                    'Pecam1', 'Pdgfra', 'Myh11', 'Atp2b4', 
                                                    'Cd52'))

Determine the ‘dimensionality’ of the data

  • Seurat tutorial uses JackStraw() and and ScoreJackStraw to determine dimensionality
  • the syntax is:
    • Estrus <- JackStraw(Estrus, num.replicate = 100)
    • Estrus <- ScoreJackStraw(Estrus, dims = 1:20)
  • However, it takes very long.
  • An elbow plot often corresponds well enough with the significant dims and is much faster to run than Jackstraw
  • According to the graph below, choose the first 37 principle components to use
ElbowPlot(Estrus, ndims = 40)

Find neighbors

  • Dims = dimensions = determined as 37 from the above step
previous_time <- proc.time()[3]
Estrus_new <- FindNeighbors(Estrus, dims = 1:37, k.param = 10)
Computing nearest neighbor graph
Computing SNN
proc.time()[3] - previous_time
elapsed 
  0.307 

Find cell clusters using Leiden’s method

# Algorithm = 4 specifies Leiden's method
previous_time <- proc.time()[3]
Estrus_new <- FindClusters(Estrus_new, resolution = 0.12, algorithm = 4)
proc.time()[3] - previous_time
elapsed 
  0.559 

Constructing UMAP plot

previous_time <- proc.time()[3]
Estrus_new <- RunUMAP(Estrus_new, dim = 1:37) 
18:28:21 UMAP embedding parameters a = 0.9922 b = 1.112
18:28:21 Read 2174 rows and found 37 numeric columns
18:28:21 Using Annoy for neighbor search, n_neighbors = 30
18:28:21 Building Annoy index with metric = cosine, n_trees = 50
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
18:28:21 Writing NN index file to temp file /tmp/RtmpdPzDpp/filec7e289291cc
18:28:21 Searching Annoy index using 1 thread, search_k = 3000
18:28:22 Annoy recall = 100%
18:28:22 Commencing smooth kNN distance calibration using 1 thread
18:28:23 Initializing from normalized Laplacian + noise
18:28:23 Commencing optimization for 500 epochs, with 85588 positive edges
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
18:28:25 Optimization finished
proc.time()[3] - previous_time
elapsed 
  4.369 

Visualization

DimPlot(Estrus_new, reduction = "umap") + ggtitle(label = 'Including immune cells')

FeaturePlot(Estrus_new, reduction = "umap", features = c('Ovgp1', 'Foxj1', 'Dcn', 'Serpina1e', 'Sprr2f',
                                                         'Fxyd4', 'Ly6a', 'Epcam', 'Krt19', 'Vim', 'Pdgfra'))

FeaturePlot(Estrus_new, reduction = "umap", features = c('Myh11', 
                                        'Dkk2', 'Slitrk6', 'Dio2', 'Smoc2', 'Tes', 'Dab1', 'Camk1d', 'Pecam1', 'Cd52','Mki67'))

Removing immune cells

sub_Estrus = subset(x = Estrus_new, ident = c(1,2,3,4,5,7,8,9,10,12))
DimPlot(sub_Estrus, reduction = "umap") + ggtitle(label = 'Immune cells removed')

FeaturePlot(sub_Estrus, reduction = "umap", features = c('Ovgp1', 'Foxj1', 'Fxyd4', 'Cxcl17', 'Myh11', 'Cd52', 'Twist2', 'Pecam1'))

FeaturePlot(sub_Estrus, reduction = "umap", features = c('Pdgfra', 'Ephx2', 'Dcn', 'Krt19', 'Epcam', 'Vim','Mki67'))

sub_Estrus
An object of class Seurat 
19420 features across 1925 samples within 1 assay 
Active assay: RNA (19420 features, 5000 variable features)
 2 dimensional reductions calculated: pca, umap
  • After removing immune cells, the dataset is left with:
    • 19420 genes
    • 1925 cells

Re-run analysis after excluding immune cells

previous_time <- proc.time()[3]
sub_Estrus <- RunPCA(sub_Estrus, features = VariableFeatures(object = sub_Estrus))
PC_ 1 
Positive:  Rps28, Rps19, Rplp0, Rpl13, Rpl18a, Rpl23a, Rpl37, Rpl32, Rps18, Rps5 
       Cd63, Rps12, Rps7, Rpl37a, Rps24, Rpl39, Rps27a, Rps23, Rps4x, Rps29 
       Rpl35, Rps20, Rpl27a, Rps3a1, Rps15a, Rps11, Rps2, Rpl10a, Rps16, Rpl10 
Negative:  Gm867, 1700016K19Rik, 1700007K13Rik, Ccdc153, Tmem212, Gm19935, Dynlrb2, Fam166c, 1110017D15Rik, Cfap126 
       Fam183b, Sntn, Foxj1, Dnali1, Vpreb3, Rsph1, Lrrc10b, Tctex1d4, Dnah12, 1700024G13Rik 
       Mlf1, Pifo, Prr29, 2410004P03Rik, Tppp3, Hdc, Dnaja4, Efcab10, Cfap77, Timp4 
PC_ 2 
Positive:  Lcn2, Fxyd3, Ltf, Wfdc2, Sftpd, Arg1, Pdzk1ip1, Sprr2f, Prap1, Epcam 
       Cxcl17, Serpina1e, Clca1, Muc1, Padi1, Rnf128, Pigr, Plet1, Elf3, Tmem45b 
       Ly6a, Tacstd2, Muc4, Ckmt1, Cldn7, Car2, Fxyd4, Pglyrp1, Trpv6, Tspan8 
Negative:  Col1a2, Serpinh1, Aebp1, Col3a1, Cald1, Col6a1, Col1a1, Sparc, Mgp, Rarres2 
       Bgn, Col6a2, Dcn, Rcn3, Igfbp6, Rnase4, Igfbp7, Zbtb20, Lgals1, Mdk 
       Nbl1, Csrp2, Igf1, Fxyd1, Lrp1, Sparcl1, Mfap2, Col6a3, Gsn, Timp2 
PC_ 3 
Positive:  Ovgp1, Kctd14, Gstm2, Emb, Clu, Wfdc18, Gstm1, Tmem218, Cbs, Aldoc 
       Ppp1r1b, Cldn22, Agr2, Slc1a3, Lrpap1, Shisa8, Tpd52l1, Rcn1, Dkk3, Sdf2l1 
       Fn1, Bex4, Manf, Gdpd2, Smim14, Selenom, Kcne3, Enho, Slc15a2, Slco2a1 
Negative:  Plac8, Clca1, Pigr, Muc4, Cxcl17, Slc40a1, Ly6a, Prap1, Tspan1, Tmem45b 
       Trpv6, Tmprss4, Serpina1e, Sprr2f, Tacstd2, Padi2, Prxl2a, Fcgbp, Fbln1, Cfh 
       Fut9, Fxyd4, Arg1, Rasa4, Lrg1, Morrbid, Ncoa7, Ckmt1, Slc39a8, Upk3bl 
PC_ 4 
Positive:  Upk3b, Nkain4, Lrrn4, Upk1b, C2, Myrf, Lgals2, Fgf1, Lgals7, Smoc2 
       Gpm6a, Serpinb6b, Slpi, Cldn15, Ogn, Cybrd1, Plxna4, Rspo1, Nrgn, Msln 
       Aldh1a2, Rpp25, Ptgis, Hpgd, Adam33, Prph, Lmcd1, Tm4sf5, Hacd4, Prss23 
Negative:  Pdgfra, Sparcl1, Gsn, Dpt, Mfap4, Htra3, Mfap2, Col15a1, Itih5, Gpm6b 
       Ramp3, Lama2, Ntrk2, Penk, G0s2, Serpinf1, Lpl, Spon1, Col6a3, Enpp2 
       Rxfp1, Pdgfrl, Matn2, Lhfp, Ctsk, Plpp3, Ramp1, P2ry1, Col5a3, Nrp1 
PC_ 5 
Positive:  Dcn, Aebp1, Ctsl, Pdgfra, Dpt, Pcolce, Fbln1, Lpl, Cygb, Ramp3 
       Col15a1, Ntrk2, Htra1, Meg3, Plxdc2, Htra3, Lum, Col5a3, Efemp1, Rnase4 
       Itm2a, Col3a1, Xdh, Cdh11, P2ry1, Ctsk, C1s1, Itm2b, Col6a2, Dkk2 
Negative:  Myh11, Cnn1, Lmod1, Fbxl22, Acta2, Mustn1, Actg2, Tagln, Sh3bgr, Mcam 
       Des, Mylk, Nexn, Myl9, Ppp1r14a, Slc22a3, Tpm2, Aoc3, Myom1, Synpo2 
       Postn, Carmn, Smtn, Dmpk, Ppp1r12b, Tpm1, Pgm5, Rbpms2, Slc2a4, Pdlim3 
proc.time()[3] - previous_time
elapsed 
  4.379 
DimPlot(sub_Estrus, reduction = "pca") + ggtitle(label = 'Immune cells removed')

FeaturePlot(sub_Estrus, reduction = "pca", features = c('Esr1', 'Ovgp1', 'Foxj1', 'Fxyd4', 'Ephx2', 'Dcn'))

FeaturePlot(sub_Estrus, reduction = "pca", features = c('Fos', 'Kcne3', 'Serpina1e', 'Crabp2', 'Pgr', 'Vim'))

previous_time <- proc.time()[3]
sub_Estrus_new <- FindNeighbors(sub_Estrus, dims = 1:37)
Computing nearest neighbor graph
Computing SNN
proc.time()[3] - previous_time
elapsed 
  0.306 
previous_time <- proc.time()[3]
sub_Estrus_new <- FindClusters(sub_Estrus_new, resolution = 0.045, algorithm = 4)
proc.time()[3] - previous_time
elapsed 
  0.592 
previous_time <- proc.time()[3]
sub_Estrus_new <- RunUMAP(sub_Estrus_new, dim = 1:37)
18:31:18 UMAP embedding parameters a = 0.9922 b = 1.112
18:31:18 Read 1925 rows and found 37 numeric columns
18:31:18 Using Annoy for neighbor search, n_neighbors = 30
18:31:18 Building Annoy index with metric = cosine, n_trees = 50
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
18:31:18 Writing NN index file to temp file /tmp/RtmpdPzDpp/filec7e27d32c007
18:31:18 Searching Annoy index using 1 thread, search_k = 3000
18:31:19 Annoy recall = 100%
18:31:19 Commencing smooth kNN distance calibration using 1 thread
18:31:20 Initializing from normalized Laplacian + noise
18:31:20 Commencing optimization for 500 epochs, with 77854 positive edges
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
18:31:22 Optimization finished
proc.time()[3] - previous_time
elapsed 
    4.1 
DimPlot(sub_Estrus_new, reduction = "umap") + ggtitle(label = 'Rescale UMAP after removing Immune cells')

FeaturePlot(sub_Estrus_new, reduction = "umap", features = c('Ovgp1', 'Foxj1', 'Crabp2', 'Myh11', 'Wt1', 'S100g', 'Sprr2f',
                  'Fxyd4'))

FeaturePlot(sub_Estrus_new, reduction = "umap", features = c('Dcn', 'Pax8', 'Pax2', 'Twist2', 'Igf1', 'Serpina1e', 'Pdgfra', 'Krt19', 'Mki67'))

Marker genes

marker_genes = c('Epcam', 'Krt15','Krt8','Krt19','Vim','Pdgfra','Twist2', 'Sprr2f', 'Fxyd4', 'Igfbp6',
                 'Acta2', 'Myh11','Foxj1','Ovgp1','Wt1','Serpina1e','S100g','Pecam1')

UMAP for marker genes

FeaturePlot(sub_Estrus_new, reduction = "umap", features = c('Epcam', 'Krt15','Krt8','Krt19','Vim','Pdgfra','Twist2', 'Sprr2f', 'Fxyd4'))

FeaturePlot(sub_Estrus_new, reduction = "umap", features = c('Igfbp6',
                                                             'Acta2', 'Myh11','Foxj1','Ovgp1','Wt1','Serpina1e','S100g','Pecam1'))

Rename clusters

Cluster.names <- c('1 Secretory_InfAmp',
                   '2 Ciliated_InfAmp',
                   '3 Fibroblast Pdgfra+',
                   '4 Secretory_IsthUTJ',
                   '5 Fibroblast Pdgfra-',
                   '6 Muscle')
names(Cluster.names) <- levels(sub_Estrus_new)
sub_Estrus_new <- RenameIdents(sub_Estrus_new, Cluster.names)
DimPlot(sub_Estrus_new, reduction = "umap", pt.size = 0.5) + scale_color_manual(labels = Cluster.names,values=c('green',                                                                                        'red','blue','orange','grey','yellow','pink'))

DotPlot(sub_Estrus_new, features = marker_genes, group.by = sub_Estrus_new@meta.data$ident) +  
  theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1)) +
  scale_y_discrete(labels = Cluster.names)

Number of cells in each clusters

table(sub_Estrus_new@active.ident, sub_Estrus_new@meta.data$orig.ident)
                      
                       Estrus
  1 Secretory_InfAmp      603
  2 Ciliated_InfAmp       502
  3 Fibroblast Pdgfra+    330
  4 Secretory_IsthUTJ     271
  5 Fibroblast Pdgfra-    129
  6 Muscle                 90

Extract top genes for each cluster

  • Default method of finding highly expressed genes for FindAllMarkers is Wilcoxon Rank Sum test
sub_Estrus_new_markers <- FindAllMarkers(sub_Estrus_new, only.pos = TRUE, min.pct = 0.25, logfc.threshold = 0.25)
Calculating cluster 1 Secretory_InfAmp

  |                                                  | 0 % ~calculating  
  |+                                                 | 1 % ~03s          
  |++                                                | 2 % ~03s          
  |++                                                | 3 % ~03s          
  |+++                                               | 4 % ~03s          
  |+++                                               | 5 % ~03s          
  |++++                                              | 6 % ~03s          
  |++++                                              | 7 % ~03s          
  |+++++                                             | 8 % ~03s          
  |+++++                                             | 9 % ~03s          
  |++++++                                            | 11% ~03s          
  |++++++                                            | 12% ~03s          
  |+++++++                                           | 13% ~03s          
  |+++++++                                           | 14% ~03s          
  |++++++++                                          | 15% ~03s          
  |++++++++                                          | 16% ~03s          
  |+++++++++                                         | 17% ~03s          
  |+++++++++                                         | 18% ~03s          
  |++++++++++                                        | 19% ~03s          
  |++++++++++                                        | 20% ~03s          
  |+++++++++++                                       | 21% ~03s          
  |++++++++++++                                      | 22% ~02s          
  |++++++++++++                                      | 23% ~02s          
  |+++++++++++++                                     | 24% ~02s          
  |+++++++++++++                                     | 25% ~02s          
  |++++++++++++++                                    | 26% ~02s          
  |++++++++++++++                                    | 27% ~02s          
  |+++++++++++++++                                   | 28% ~02s          
  |+++++++++++++++                                   | 29% ~02s          
  |++++++++++++++++                                  | 31% ~02s          
  |++++++++++++++++                                  | 32% ~02s          
  |+++++++++++++++++                                 | 33% ~02s          
  |+++++++++++++++++                                 | 34% ~02s          
  |++++++++++++++++++                                | 35% ~02s          
  |++++++++++++++++++                                | 36% ~02s          
  |+++++++++++++++++++                               | 37% ~02s          
  |+++++++++++++++++++                               | 38% ~02s          
  |++++++++++++++++++++                              | 39% ~02s          
  |++++++++++++++++++++                              | 40% ~02s          
  |+++++++++++++++++++++                             | 41% ~02s          
  |++++++++++++++++++++++                            | 42% ~02s          
  |++++++++++++++++++++++                            | 43% ~02s          
  |+++++++++++++++++++++++                           | 44% ~02s          
  |+++++++++++++++++++++++                           | 45% ~02s          
  |++++++++++++++++++++++++                          | 46% ~02s          
  |++++++++++++++++++++++++                          | 47% ~02s          
  |+++++++++++++++++++++++++                         | 48% ~02s          
  |+++++++++++++++++++++++++                         | 49% ~02s          
  |++++++++++++++++++++++++++                        | 51% ~02s          
  |++++++++++++++++++++++++++                        | 52% ~02s          
  |+++++++++++++++++++++++++++                       | 53% ~01s          
  |+++++++++++++++++++++++++++                       | 54% ~01s          
  |++++++++++++++++++++++++++++                      | 55% ~01s          
  |++++++++++++++++++++++++++++                      | 56% ~01s          
  |+++++++++++++++++++++++++++++                     | 57% ~01s          
  |+++++++++++++++++++++++++++++                     | 58% ~01s          
  |++++++++++++++++++++++++++++++                    | 59% ~01s          
  |++++++++++++++++++++++++++++++                    | 60% ~01s          
  |+++++++++++++++++++++++++++++++                   | 61% ~01s          
  |++++++++++++++++++++++++++++++++                  | 62% ~01s          
  |++++++++++++++++++++++++++++++++                  | 63% ~01s          
  |+++++++++++++++++++++++++++++++++                 | 64% ~01s          
  |+++++++++++++++++++++++++++++++++                 | 65% ~01s          
  |++++++++++++++++++++++++++++++++++                | 66% ~01s          
  |++++++++++++++++++++++++++++++++++                | 67% ~01s          
  |+++++++++++++++++++++++++++++++++++               | 68% ~01s          
  |+++++++++++++++++++++++++++++++++++               | 69% ~01s          
  |++++++++++++++++++++++++++++++++++++              | 71% ~01s          
  |++++++++++++++++++++++++++++++++++++              | 72% ~01s          
  |+++++++++++++++++++++++++++++++++++++             | 73% ~01s          
  |+++++++++++++++++++++++++++++++++++++             | 74% ~01s          
  |++++++++++++++++++++++++++++++++++++++            | 75% ~01s          
  |++++++++++++++++++++++++++++++++++++++            | 76% ~01s          
  |+++++++++++++++++++++++++++++++++++++++           | 77% ~01s          
  |+++++++++++++++++++++++++++++++++++++++           | 78% ~01s          
  |++++++++++++++++++++++++++++++++++++++++          | 79% ~01s          
  |++++++++++++++++++++++++++++++++++++++++          | 80% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++         | 81% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++        | 82% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++        | 83% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 84% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 85% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++      | 86% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++      | 87% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 88% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 89% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 91% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 92% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++++   | 93% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++++   | 94% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 95% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 96% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=03s  
Calculating cluster 2 Ciliated_InfAmp

  |                                                  | 0 % ~calculating  
  |+                                                 | 1 % ~10s          
  |+                                                 | 2 % ~09s          
  |++                                                | 3 % ~09s          
  |++                                                | 4 % ~09s          
  |+++                                               | 5 % ~09s          
  |+++                                               | 6 % ~09s          
  |++++                                              | 7 % ~09s          
  |++++                                              | 8 % ~09s          
  |+++++                                             | 9 % ~09s          
  |+++++                                             | 10% ~09s          
  |++++++                                            | 11% ~09s          
  |++++++                                            | 12% ~08s          
  |+++++++                                           | 13% ~08s          
  |+++++++                                           | 14% ~08s          
  |++++++++                                          | 15% ~08s          
  |++++++++                                          | 16% ~08s          
  |+++++++++                                         | 17% ~08s          
  |+++++++++                                         | 18% ~08s          
  |++++++++++                                        | 19% ~08s          
  |++++++++++                                        | 20% ~08s          
  |+++++++++++                                       | 21% ~08s          
  |+++++++++++                                       | 22% ~08s          
  |++++++++++++                                      | 23% ~07s          
  |++++++++++++                                      | 24% ~07s          
  |+++++++++++++                                     | 25% ~07s          
  |+++++++++++++                                     | 26% ~07s          
  |++++++++++++++                                    | 27% ~07s          
  |++++++++++++++                                    | 28% ~07s          
  |+++++++++++++++                                   | 29% ~07s          
  |+++++++++++++++                                   | 30% ~07s          
  |++++++++++++++++                                  | 31% ~07s          
  |++++++++++++++++                                  | 32% ~07s          
  |+++++++++++++++++                                 | 33% ~06s          
  |+++++++++++++++++                                 | 34% ~06s          
  |++++++++++++++++++                                | 35% ~06s          
  |++++++++++++++++++                                | 36% ~06s          
  |+++++++++++++++++++                               | 37% ~06s          
  |+++++++++++++++++++                               | 38% ~06s          
  |++++++++++++++++++++                              | 39% ~06s          
  |++++++++++++++++++++                              | 40% ~06s          
  |+++++++++++++++++++++                             | 41% ~06s          
  |+++++++++++++++++++++                             | 42% ~06s          
  |++++++++++++++++++++++                            | 43% ~06s          
  |++++++++++++++++++++++                            | 44% ~05s          
  |+++++++++++++++++++++++                           | 45% ~05s          
  |+++++++++++++++++++++++                           | 46% ~05s          
  |++++++++++++++++++++++++                          | 47% ~05s          
  |++++++++++++++++++++++++                          | 48% ~05s          
  |+++++++++++++++++++++++++                         | 49% ~05s          
  |+++++++++++++++++++++++++                         | 50% ~05s          
  |++++++++++++++++++++++++++                        | 51% ~05s          
  |++++++++++++++++++++++++++                        | 52% ~05s          
  |+++++++++++++++++++++++++++                       | 53% ~05s          
  |+++++++++++++++++++++++++++                       | 54% ~04s          
  |++++++++++++++++++++++++++++                      | 55% ~04s          
  |++++++++++++++++++++++++++++                      | 56% ~04s          
  |+++++++++++++++++++++++++++++                     | 57% ~04s          
  |+++++++++++++++++++++++++++++                     | 58% ~04s          
  |++++++++++++++++++++++++++++++                    | 59% ~04s          
  |++++++++++++++++++++++++++++++                    | 60% ~04s          
  |+++++++++++++++++++++++++++++++                   | 61% ~04s          
  |+++++++++++++++++++++++++++++++                   | 62% ~04s          
  |++++++++++++++++++++++++++++++++                  | 63% ~04s          
  |++++++++++++++++++++++++++++++++                  | 64% ~04s          
  |+++++++++++++++++++++++++++++++++                 | 65% ~03s          
  |+++++++++++++++++++++++++++++++++                 | 66% ~03s          
  |++++++++++++++++++++++++++++++++++                | 67% ~03s          
  |++++++++++++++++++++++++++++++++++                | 68% ~03s          
  |+++++++++++++++++++++++++++++++++++               | 69% ~03s          
  |+++++++++++++++++++++++++++++++++++               | 70% ~03s          
  |++++++++++++++++++++++++++++++++++++              | 71% ~03s          
  |++++++++++++++++++++++++++++++++++++              | 72% ~03s          
  |+++++++++++++++++++++++++++++++++++++             | 73% ~03s          
  |+++++++++++++++++++++++++++++++++++++             | 74% ~03s          
  |++++++++++++++++++++++++++++++++++++++            | 75% ~02s          
  |++++++++++++++++++++++++++++++++++++++            | 76% ~02s          
  |+++++++++++++++++++++++++++++++++++++++           | 77% ~02s          
  |+++++++++++++++++++++++++++++++++++++++           | 78% ~02s          
  |++++++++++++++++++++++++++++++++++++++++          | 79% ~02s          
  |++++++++++++++++++++++++++++++++++++++++          | 80% ~02s          
  |+++++++++++++++++++++++++++++++++++++++++         | 81% ~02s          
  |+++++++++++++++++++++++++++++++++++++++++         | 82% ~02s          
  |++++++++++++++++++++++++++++++++++++++++++        | 83% ~02s          
  |++++++++++++++++++++++++++++++++++++++++++        | 84% ~02s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 85% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 86% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++++      | 87% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++++      | 88% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 89% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 90% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 91% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 92% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++++++++   | 93% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++++++++   | 94% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 95% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 96% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=10s  
Calculating cluster 3 Fibroblast Pdgfra+

  |                                                  | 0 % ~calculating  
  |+                                                 | 1 % ~02s          
  |++                                                | 2 % ~02s          
  |++                                                | 3 % ~02s          
  |+++                                               | 4 % ~02s          
  |+++                                               | 5 % ~02s          
  |++++                                              | 6 % ~02s          
  |++++                                              | 8 % ~02s          
  |+++++                                             | 9 % ~02s          
  |+++++                                             | 10% ~02s          
  |++++++                                            | 11% ~02s          
  |++++++                                            | 12% ~02s          
  |+++++++                                           | 13% ~02s          
  |+++++++                                           | 14% ~02s          
  |++++++++                                          | 15% ~02s          
  |+++++++++                                         | 16% ~02s          
  |+++++++++                                         | 17% ~02s          
  |++++++++++                                        | 18% ~02s          
  |++++++++++                                        | 19% ~02s          
  |+++++++++++                                       | 20% ~02s          
  |+++++++++++                                       | 22% ~02s          
  |++++++++++++                                      | 23% ~02s          
  |++++++++++++                                      | 24% ~02s          
  |+++++++++++++                                     | 25% ~02s          
  |+++++++++++++                                     | 26% ~02s          
  |++++++++++++++                                    | 27% ~02s          
  |++++++++++++++                                    | 28% ~02s          
  |+++++++++++++++                                   | 29% ~02s          
  |++++++++++++++++                                  | 30% ~02s          
  |++++++++++++++++                                  | 31% ~02s          
  |+++++++++++++++++                                 | 32% ~02s          
  |+++++++++++++++++                                 | 33% ~02s          
  |++++++++++++++++++                                | 34% ~02s          
  |++++++++++++++++++                                | 35% ~02s          
  |+++++++++++++++++++                               | 37% ~02s          
  |+++++++++++++++++++                               | 38% ~02s          
  |++++++++++++++++++++                              | 39% ~02s          
  |++++++++++++++++++++                              | 40% ~01s          
  |+++++++++++++++++++++                             | 41% ~01s          
  |+++++++++++++++++++++                             | 42% ~01s          
  |++++++++++++++++++++++                            | 43% ~01s          
  |+++++++++++++++++++++++                           | 44% ~01s          
  |+++++++++++++++++++++++                           | 45% ~01s          
  |++++++++++++++++++++++++                          | 46% ~01s          
  |++++++++++++++++++++++++                          | 47% ~01s          
  |+++++++++++++++++++++++++                         | 48% ~01s          
  |+++++++++++++++++++++++++                         | 49% ~01s          
  |++++++++++++++++++++++++++                        | 51% ~01s          
  |++++++++++++++++++++++++++                        | 52% ~01s          
  |+++++++++++++++++++++++++++                       | 53% ~01s          
  |+++++++++++++++++++++++++++                       | 54% ~01s          
  |++++++++++++++++++++++++++++                      | 55% ~01s          
  |++++++++++++++++++++++++++++                      | 56% ~01s          
  |+++++++++++++++++++++++++++++                     | 57% ~01s          
  |++++++++++++++++++++++++++++++                    | 58% ~01s          
  |++++++++++++++++++++++++++++++                    | 59% ~01s          
  |+++++++++++++++++++++++++++++++                   | 60% ~01s          
  |+++++++++++++++++++++++++++++++                   | 61% ~01s          
  |++++++++++++++++++++++++++++++++                  | 62% ~01s          
  |++++++++++++++++++++++++++++++++                  | 63% ~01s          
  |+++++++++++++++++++++++++++++++++                 | 65% ~01s          
  |+++++++++++++++++++++++++++++++++                 | 66% ~01s          
  |++++++++++++++++++++++++++++++++++                | 67% ~01s          
  |++++++++++++++++++++++++++++++++++                | 68% ~01s          
  |+++++++++++++++++++++++++++++++++++               | 69% ~01s          
  |+++++++++++++++++++++++++++++++++++               | 70% ~01s          
  |++++++++++++++++++++++++++++++++++++              | 71% ~01s          
  |+++++++++++++++++++++++++++++++++++++             | 72% ~01s          
  |+++++++++++++++++++++++++++++++++++++             | 73% ~01s          
  |++++++++++++++++++++++++++++++++++++++            | 74% ~01s          
  |++++++++++++++++++++++++++++++++++++++            | 75% ~01s          
  |+++++++++++++++++++++++++++++++++++++++           | 76% ~01s          
  |+++++++++++++++++++++++++++++++++++++++           | 77% ~01s          
  |++++++++++++++++++++++++++++++++++++++++          | 78% ~01s          
  |++++++++++++++++++++++++++++++++++++++++          | 80% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++         | 81% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++         | 82% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++        | 83% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++        | 84% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 85% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++      | 86% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++      | 87% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 88% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 89% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 90% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 91% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++++   | 92% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++++   | 94% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 95% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 96% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=03s  
Calculating cluster 4 Secretory_IsthUTJ

  |                                                  | 0 % ~calculating  
  |+                                                 | 1 % ~04s          
  |++                                                | 2 % ~04s          
  |++                                                | 3 % ~04s          
  |+++                                               | 4 % ~04s          
  |+++                                               | 5 % ~04s          
  |++++                                              | 6 % ~04s          
  |++++                                              | 7 % ~03s          
  |+++++                                             | 8 % ~03s          
  |+++++                                             | 9 % ~03s          
  |++++++                                            | 10% ~03s          
  |++++++                                            | 11% ~03s          
  |+++++++                                           | 12% ~03s          
  |+++++++                                           | 13% ~03s          
  |++++++++                                          | 14% ~03s          
  |++++++++                                          | 15% ~03s          
  |+++++++++                                         | 16% ~03s          
  |+++++++++                                         | 18% ~03s          
  |++++++++++                                        | 19% ~03s          
  |++++++++++                                        | 20% ~03s          
  |+++++++++++                                       | 21% ~03s          
  |+++++++++++                                       | 22% ~03s          
  |++++++++++++                                      | 23% ~03s          
  |++++++++++++                                      | 24% ~03s          
  |+++++++++++++                                     | 25% ~03s          
  |+++++++++++++                                     | 26% ~03s          
  |++++++++++++++                                    | 27% ~03s          
  |++++++++++++++                                    | 28% ~03s          
  |+++++++++++++++                                   | 29% ~03s          
  |+++++++++++++++                                   | 30% ~03s          
  |++++++++++++++++                                  | 31% ~03s          
  |++++++++++++++++                                  | 32% ~03s          
  |+++++++++++++++++                                 | 33% ~03s          
  |++++++++++++++++++                                | 34% ~02s          
  |++++++++++++++++++                                | 35% ~02s          
  |+++++++++++++++++++                               | 36% ~02s          
  |+++++++++++++++++++                               | 37% ~02s          
  |++++++++++++++++++++                              | 38% ~02s          
  |++++++++++++++++++++                              | 39% ~02s          
  |+++++++++++++++++++++                             | 40% ~02s          
  |+++++++++++++++++++++                             | 41% ~02s          
  |++++++++++++++++++++++                            | 42% ~02s          
  |++++++++++++++++++++++                            | 43% ~02s          
  |+++++++++++++++++++++++                           | 44% ~02s          
  |+++++++++++++++++++++++                           | 45% ~02s          
  |++++++++++++++++++++++++                          | 46% ~02s          
  |++++++++++++++++++++++++                          | 47% ~02s          
  |+++++++++++++++++++++++++                         | 48% ~02s          
  |+++++++++++++++++++++++++                         | 49% ~02s          
  |++++++++++++++++++++++++++                        | 51% ~02s          
  |++++++++++++++++++++++++++                        | 52% ~02s          
  |+++++++++++++++++++++++++++                       | 53% ~02s          
  |+++++++++++++++++++++++++++                       | 54% ~02s          
  |++++++++++++++++++++++++++++                      | 55% ~02s          
  |++++++++++++++++++++++++++++                      | 56% ~02s          
  |+++++++++++++++++++++++++++++                     | 57% ~02s          
  |+++++++++++++++++++++++++++++                     | 58% ~02s          
  |++++++++++++++++++++++++++++++                    | 59% ~02s          
  |++++++++++++++++++++++++++++++                    | 60% ~02s          
  |+++++++++++++++++++++++++++++++                   | 61% ~01s          
  |+++++++++++++++++++++++++++++++                   | 62% ~01s          
  |++++++++++++++++++++++++++++++++                  | 63% ~01s          
  |++++++++++++++++++++++++++++++++                  | 64% ~01s          
  |+++++++++++++++++++++++++++++++++                 | 65% ~01s          
  |+++++++++++++++++++++++++++++++++                 | 66% ~01s          
  |++++++++++++++++++++++++++++++++++                | 67% ~01s          
  |+++++++++++++++++++++++++++++++++++               | 68% ~01s          
  |+++++++++++++++++++++++++++++++++++               | 69% ~01s          
  |++++++++++++++++++++++++++++++++++++              | 70% ~01s          
  |++++++++++++++++++++++++++++++++++++              | 71% ~01s          
  |+++++++++++++++++++++++++++++++++++++             | 72% ~01s          
  |+++++++++++++++++++++++++++++++++++++             | 73% ~01s          
  |++++++++++++++++++++++++++++++++++++++            | 74% ~01s          
  |++++++++++++++++++++++++++++++++++++++            | 75% ~01s          
  |+++++++++++++++++++++++++++++++++++++++           | 76% ~01s          
  |+++++++++++++++++++++++++++++++++++++++           | 77% ~01s          
  |++++++++++++++++++++++++++++++++++++++++          | 78% ~01s          
  |++++++++++++++++++++++++++++++++++++++++          | 79% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++         | 80% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++         | 81% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++        | 82% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++        | 84% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 85% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 86% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++++      | 87% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++++      | 88% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 89% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 90% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 91% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 92% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++++   | 93% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++++   | 94% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 95% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 96% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=04s  
Calculating cluster 5 Fibroblast Pdgfra-

  |                                                  | 0 % ~calculating  
  |+                                                 | 1 % ~04s          
  |++                                                | 2 % ~04s          
  |++                                                | 3 % ~04s          
  |+++                                               | 4 % ~04s          
  |+++                                               | 5 % ~04s          
  |++++                                              | 6 % ~03s          
  |++++                                              | 7 % ~03s          
  |+++++                                             | 9 % ~03s          
  |+++++                                             | 10% ~03s          
  |++++++                                            | 11% ~03s          
  |++++++                                            | 12% ~03s          
  |+++++++                                           | 13% ~03s          
  |+++++++                                           | 14% ~03s          
  |++++++++                                          | 15% ~03s          
  |++++++++                                          | 16% ~03s          
  |+++++++++                                         | 17% ~03s          
  |++++++++++                                        | 18% ~03s          
  |++++++++++                                        | 19% ~03s          
  |+++++++++++                                       | 20% ~03s          
  |+++++++++++                                       | 21% ~03s          
  |++++++++++++                                      | 22% ~03s          
  |++++++++++++                                      | 23% ~03s          
  |+++++++++++++                                     | 24% ~03s          
  |+++++++++++++                                     | 26% ~03s          
  |++++++++++++++                                    | 27% ~03s          
  |++++++++++++++                                    | 28% ~03s          
  |+++++++++++++++                                   | 29% ~03s          
  |+++++++++++++++                                   | 30% ~03s          
  |++++++++++++++++                                  | 31% ~03s          
  |++++++++++++++++                                  | 32% ~03s          
  |+++++++++++++++++                                 | 33% ~02s          
  |++++++++++++++++++                                | 34% ~02s          
  |++++++++++++++++++                                | 35% ~02s          
  |+++++++++++++++++++                               | 36% ~02s          
  |+++++++++++++++++++                               | 37% ~02s          
  |++++++++++++++++++++                              | 38% ~02s          
  |++++++++++++++++++++                              | 39% ~02s          
  |+++++++++++++++++++++                             | 40% ~02s          
  |+++++++++++++++++++++                             | 41% ~02s          
  |++++++++++++++++++++++                            | 43% ~02s          
  |++++++++++++++++++++++                            | 44% ~02s          
  |+++++++++++++++++++++++                           | 45% ~02s          
  |+++++++++++++++++++++++                           | 46% ~02s          
  |++++++++++++++++++++++++                          | 47% ~02s          
  |++++++++++++++++++++++++                          | 48% ~02s          
  |+++++++++++++++++++++++++                         | 49% ~02s          
  |+++++++++++++++++++++++++                         | 50% ~02s          
  |++++++++++++++++++++++++++                        | 51% ~02s          
  |+++++++++++++++++++++++++++                       | 52% ~02s          
  |+++++++++++++++++++++++++++                       | 53% ~02s          
  |++++++++++++++++++++++++++++                      | 54% ~02s          
  |++++++++++++++++++++++++++++                      | 55% ~02s          
  |+++++++++++++++++++++++++++++                     | 56% ~02s          
  |+++++++++++++++++++++++++++++                     | 57% ~02s          
  |++++++++++++++++++++++++++++++                    | 59% ~02s          
  |++++++++++++++++++++++++++++++                    | 60% ~01s          
  |+++++++++++++++++++++++++++++++                   | 61% ~01s          
  |+++++++++++++++++++++++++++++++                   | 62% ~01s          
  |++++++++++++++++++++++++++++++++                  | 63% ~01s          
  |++++++++++++++++++++++++++++++++                  | 64% ~01s          
  |+++++++++++++++++++++++++++++++++                 | 65% ~01s          
  |+++++++++++++++++++++++++++++++++                 | 66% ~01s          
  |++++++++++++++++++++++++++++++++++                | 67% ~01s          
  |+++++++++++++++++++++++++++++++++++               | 68% ~01s          
  |+++++++++++++++++++++++++++++++++++               | 69% ~01s          
  |++++++++++++++++++++++++++++++++++++              | 70% ~01s          
  |++++++++++++++++++++++++++++++++++++              | 71% ~01s          
  |+++++++++++++++++++++++++++++++++++++             | 72% ~01s          
  |+++++++++++++++++++++++++++++++++++++             | 73% ~01s          
  |++++++++++++++++++++++++++++++++++++++            | 74% ~01s          
  |++++++++++++++++++++++++++++++++++++++            | 76% ~01s          
  |+++++++++++++++++++++++++++++++++++++++           | 77% ~01s          
  |+++++++++++++++++++++++++++++++++++++++           | 78% ~01s          
  |++++++++++++++++++++++++++++++++++++++++          | 79% ~01s          
  |++++++++++++++++++++++++++++++++++++++++          | 80% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++         | 81% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++         | 82% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++        | 83% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 84% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 85% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++++      | 86% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++++      | 87% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 88% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 89% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 90% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 91% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++++   | 93% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++++   | 94% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 95% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 96% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=04s  
Calculating cluster 6 Muscle

  |                                                  | 0 % ~calculating  
  |+                                                 | 1 % ~02s          
  |++                                                | 2 % ~02s          
  |++                                                | 3 % ~02s          
  |+++                                               | 4 % ~02s          
  |+++                                               | 5 % ~02s          
  |++++                                              | 6 % ~02s          
  |++++                                              | 7 % ~02s          
  |+++++                                             | 8 % ~02s          
  |+++++                                             | 9 % ~02s          
  |++++++                                            | 11% ~02s          
  |++++++                                            | 12% ~02s          
  |+++++++                                           | 13% ~02s          
  |+++++++                                           | 14% ~02s          
  |++++++++                                          | 15% ~02s          
  |++++++++                                          | 16% ~02s          
  |+++++++++                                         | 17% ~02s          
  |+++++++++                                         | 18% ~02s          
  |++++++++++                                        | 19% ~02s          
  |++++++++++                                        | 20% ~02s          
  |+++++++++++                                       | 21% ~02s          
  |++++++++++++                                      | 22% ~02s          
  |++++++++++++                                      | 23% ~02s          
  |+++++++++++++                                     | 24% ~02s          
  |+++++++++++++                                     | 25% ~02s          
  |++++++++++++++                                    | 26% ~02s          
  |++++++++++++++                                    | 27% ~02s          
  |+++++++++++++++                                   | 28% ~02s          
  |+++++++++++++++                                   | 29% ~02s          
  |++++++++++++++++                                  | 31% ~02s          
  |++++++++++++++++                                  | 32% ~02s          
  |+++++++++++++++++                                 | 33% ~02s          
  |+++++++++++++++++                                 | 34% ~02s          
  |++++++++++++++++++                                | 35% ~02s          
  |++++++++++++++++++                                | 36% ~01s          
  |+++++++++++++++++++                               | 37% ~01s          
  |+++++++++++++++++++                               | 38% ~01s          
  |++++++++++++++++++++                              | 39% ~01s          
  |++++++++++++++++++++                              | 40% ~01s          
  |+++++++++++++++++++++                             | 41% ~01s          
  |++++++++++++++++++++++                            | 42% ~01s          
  |++++++++++++++++++++++                            | 43% ~01s          
  |+++++++++++++++++++++++                           | 44% ~01s          
  |+++++++++++++++++++++++                           | 45% ~01s          
  |++++++++++++++++++++++++                          | 46% ~01s          
  |++++++++++++++++++++++++                          | 47% ~01s          
  |+++++++++++++++++++++++++                         | 48% ~01s          
  |+++++++++++++++++++++++++                         | 49% ~01s          
  |++++++++++++++++++++++++++                        | 51% ~01s          
  |++++++++++++++++++++++++++                        | 52% ~01s          
  |+++++++++++++++++++++++++++                       | 53% ~01s          
  |+++++++++++++++++++++++++++                       | 54% ~01s          
  |++++++++++++++++++++++++++++                      | 55% ~01s          
  |++++++++++++++++++++++++++++                      | 56% ~01s          
  |+++++++++++++++++++++++++++++                     | 57% ~01s          
  |+++++++++++++++++++++++++++++                     | 58% ~01s          
  |++++++++++++++++++++++++++++++                    | 59% ~01s          
  |++++++++++++++++++++++++++++++                    | 60% ~01s          
  |+++++++++++++++++++++++++++++++                   | 61% ~01s          
  |++++++++++++++++++++++++++++++++                  | 62% ~01s          
  |++++++++++++++++++++++++++++++++                  | 63% ~01s          
  |+++++++++++++++++++++++++++++++++                 | 64% ~01s          
  |+++++++++++++++++++++++++++++++++                 | 65% ~01s          
  |++++++++++++++++++++++++++++++++++                | 66% ~01s          
  |++++++++++++++++++++++++++++++++++                | 67% ~01s          
  |+++++++++++++++++++++++++++++++++++               | 68% ~01s          
  |+++++++++++++++++++++++++++++++++++               | 69% ~01s          
  |++++++++++++++++++++++++++++++++++++              | 71% ~01s          
  |++++++++++++++++++++++++++++++++++++              | 72% ~01s          
  |+++++++++++++++++++++++++++++++++++++             | 73% ~01s          
  |+++++++++++++++++++++++++++++++++++++             | 74% ~01s          
  |++++++++++++++++++++++++++++++++++++++            | 75% ~01s          
  |++++++++++++++++++++++++++++++++++++++            | 76% ~01s          
  |+++++++++++++++++++++++++++++++++++++++           | 77% ~01s          
  |+++++++++++++++++++++++++++++++++++++++           | 78% ~01s          
  |++++++++++++++++++++++++++++++++++++++++          | 79% ~00s          
  |++++++++++++++++++++++++++++++++++++++++          | 80% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++         | 81% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++        | 82% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++        | 83% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 84% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 85% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++      | 86% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++      | 87% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 88% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 89% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 91% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 92% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++++   | 93% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++++   | 94% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 95% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 96% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=02s  
sub_Estrus_new_markers %>%
    group_by(cluster) %>%
    slice_max(n = 20, order_by = avg_log2FC)

Heat map for top 10 genes in each cluster

sub_Estrus_new_markers %>%
    group_by(cluster) %>%
    top_n(n = 10, wt = avg_log2FC) -> top10
DoHeatmap(sub_Estrus_new, features = top10$gene) + NoLegend()

LS0tCnRpdGxlOiAic2NSTkEtc2VxIGFuYWx5c2lzIHVzaW5nIFNldXJhdCBwYWNrYWdlIgpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sKYXV0aG9yOiBMb25nIE5ndXllbgotLS0KIyBEZXNjcmlwdGlvbjoKKiBUaGUgcHVycG9zZSBvZiB0aGlzIG5vdGVib29rIGlzIHRvIGFuYWx5emUgc2NSTkEtc2VxIGRhdGEgb2YgbW91c2UgRXN0cnVzCiogVGhlIG1ldGhvZCB1c2VkIGlzIHJlYWRpbmcgZGlyZWN0bHkgZnJvbSBmYXN0cSBmaWxlcwoqIFRoZSBhbGdvcml0aG1zIHVzZWQgY29tZSBmcm9tIFNldXJhdCBwYWNrYWdlIAoqIFRoZSByZXN1bHRzIHdpbGwgY29tcGFyZWQgdG86CiAgKyBTYW1lIGRhdGFzZXQgYW5hbHl6ZWQgdXNpbmcgU2NhbnB5IC0gcmVhZDEweAogICsgU2FtZSBkYXRhc2V0IGFuYWx5emVkIHVzaW5nIFNjYW5weSAtIHJlYWRsb29tCiAgCiMgV29ya2Zsb3cgYmVnaW4KVGhpcyB0dXRvcmlhbCBjb21lcyBmcm9tIFtTZXVyYXRdKGh0dHBzOi8vc2F0aWphbGFiLm9yZy9zZXVyYXQvYXJ0aWNsZXMvcGJtYzNrX3R1dG9yaWFsLmh0bWwpCgojIyBMb2FkIHJlcXVpcmVkIHBhY2thZ2VzCmBgYHtyfQpsaWJyYXJ5KGRwbHlyKQpsaWJyYXJ5KFNldXJhdCkKbGlicmFyeShsZWlkZW4pCmxpYnJhcnkoZ2dwbG90MikKYGBgCgoKIyMgTG9hZCBkYXRhCklucHV0IGlzIGEgZGlyZWN0b3J5IHRoYXQgY29udGFpbnMgZmFzdHEgZmlsZXMKYGBge3J9CnByZXZpb3VzX3RpbWUgPC0gcHJvYy50aW1lKClbM10KRXN0cnVzLmRhdGEgPC1SZWFkMTBYKGRhdGEuZGlyID0iL2hvbWUvbmd1eWVuL0VzdHJ1c19jZWxscmFuZ2VyX2NvdW50L0VzdHJ1c19SYXcvIikKcHJvYy50aW1lKClbM10gLSBwcmV2aW91c190aW1lCmBgYAoqIFZpZXcoRXN0cnVzLmRhdGEpIC0gcnVuIHRoaXMgY29tbWFuZCB0byBpbnZlc3RpZ2F0ZSB0aGUgb3V0cHV0CiogQ3VycmVudCBkYXRhc2V0OgogICsgMzEyNTMgZ2VuZXMKICArIDY1OTkgY2VsbHMKCiMjIEluaXRpYWxpemUgdGhlIFNldXJhdCBvYmplY3QKKiBJbml0aWFsaXplIHRoZSBTZXVyYXQgb2JqZWN0IHdpdGggdGhlIHJhdyAobm9uLW5vcm1hbGl6ZWQgZGF0YSkuCiogRmlsdGVyIG91dCBnZW5lcyB0aGF0IGFyZSBkZXRlY3RlZCBpbiBsZXNzIHRoYW4gMyBjZWxscyAKKiBGaWx0ZXIgb3V0IGNlbGxzIHRoYXQgaGF2ZSBsZXNzIHRoYW4gMjAwIGdlbmVzIGV4cHJlc3NlZApgYGB7cn0KcHJldmlvdXNfdGltZSA8LSBwcm9jLnRpbWUoKVszXQpFc3RydXMgPC0gQ3JlYXRlU2V1cmF0T2JqZWN0KGNvdW50cyA9IEVzdHJ1cy5kYXRhLCBwcm9qZWN0ID0gIkVzdHJ1cyIsIG1pbi5jZWxscyA9IDMsIG1pbi5mZWF0dXJlcyA9IDIwMCkKcHJvYy50aW1lKClbM10gLSBwcmV2aW91c190aW1lCkVzdHJ1cwpgYGAKKk91dHB1dDoKICArIDE5NDIwIGdlbmVzIAogICsgNjQ4MSBjZWxscwoKIyMgQ2FsY3VsYXRlIHRoZSBwZXJjZW50YWdlIG9mIG1pdG9jaG9uZHJpYWwgZ2VuZXMKKiBBZGQgInBlcmNlbnQubXQiIGNvbHVtbiB0byBvYmplY3QgbWV0YWRhdGEKKiBQZXJjZW50YWdlIG9mIG1pdG9jaG9uZHJpYWwgZ2VuZXMgaXMgc3RvcmVkIGluICJwZXJjZW50Lm10IgoqICJebXQtIiBtZWFucyBzdHJpbmdzIHN0YXJ0IHdpdGggbXQgKGxvd2VyY2FzZSBtdCBmb3IgbWljZSwgdXBwZXJjYXNlIE1UIGZvciBodW1hbikKYGBge3J9CkVzdHJ1c1tbInBlcmNlbnQubXQiXV0gPC0gUGVyY2VudGFnZUZlYXR1cmVTZXQoRXN0cnVzLCBwYXR0ZXJuID0gIl5tdC0iKQpgYGAKCmBgYHtyfQojIFRoaXMgaXMgdGhlIGxpc3Qgb2YgZ2VuZXMgdGhhdCBzdGFydCB3aXRoIG10Cm1pdG9fZ2VuZXMgPC0gZ3JlcCgiXm10LSIsIHJvd25hbWVzKEVzdHJ1cykgLCBpZ25vcmUuY2FzZT1ULCB2YWx1ZT1UKQpwcmludChtaXRvX2dlbmVzKQpgYGAKCmBgYHtyfQojIFRoaXMgaXMgdGhlIGRhdGEgaW4gInBlcmNlbnQubXQiIGNvbHVtbgpwZXJjZW50X21pdG8gPC0gRmV0Y2hEYXRhKG9iamVjdCA9IEVzdHJ1cywgdmFycyA9ICJwZXJjZW50Lm10IikgI2hvdyB0byBmZXRjaCBkYXRhCmhlYWQocGVyY2VudF9taXRvKQpgYGAKCmBgYHtyLCBmaWcud2lkdGg9MTB9CiMgVmlzdWFsaXplIFFDIG1ldHJpY3MgYXMgYSB2aW9saW4gcGxvdApWbG5QbG90KEVzdHJ1cywgZmVhdHVyZXMgPSBjKCJuRmVhdHVyZV9STkEiLCAibkNvdW50X1JOQSIsICJwZXJjZW50Lm10IiksIG5jb2wgPSAzKQpgYGAKYGBge3J9CiMgRmVhdHVyZVNjYXR0ZXIgaXMgdHlwaWNhbGx5IHVzZWQgdG8gdmlzdWFsaXplIGZlYXR1cmUtZmVhdHVyZSByZWxhdGlvbnNoaXBzLCBidXQgY2FuIGJlIHVzZWQKIyBmb3IgYW55dGhpbmcgY2FsY3VsYXRlZCBieSB0aGUgb2JqZWN0LCBpLmUuIGNvbHVtbnMgaW4gb2JqZWN0IG1ldGFkYXRhLCBQQyBzY29yZXMgZXRjLgpwbG90MSA8LSBGZWF0dXJlU2NhdHRlcihFc3RydXMsIGZlYXR1cmUxID0gIm5Db3VudF9STkEiLCBmZWF0dXJlMiA9ICJwZXJjZW50Lm10IikKcGxvdDIgPC0gRmVhdHVyZVNjYXR0ZXIoRXN0cnVzLCBmZWF0dXJlMSA9ICJuQ291bnRfUk5BIiwgZmVhdHVyZTIgPSAibkZlYXR1cmVfUk5BIikKcGxvdDEgKyBwbG90MgpgYGAKCiMjIEZpbHRlciBvdXQgbG93LXF1YWxpdHkgY2VsbHMKKiBXZSBmaWx0ZXIgb3V0IGNlbGxzIHRoYXQgaGF2ZSB1bmlxdWUgZmVhdHVyZSBjb3VudHMgb3ZlciA2MDAwCiogQmVjYXVzZSBhbnkgY2VsbCB0aGF0IGhhcyBtb3JlIHRoYW4gNjAwMCBnZW5lcyBhcmUgbGlrZWx5IGRvdWJsZXRzCiogTm90ZTogU2V1cmF0IHR1dG9yaWFsIHVzZWQgMjUwMCBpbnN0ZWFkIG9mIDYwMDAKKiBXZSBhbHNvIGZpbHRlciBvdXQgY2VsbHMgdGhhdCBoYXZlIG1vcmUgdGhhbiA1JSBtaXRvY2hvbmRyaWFsIGdlbmVzCiogQmVjYXVzZSB0aG9zZSBhcmUgbGlrZWx5IHRvIGJlIG5vbnZpYWJsZSBjZWxscwpgYGB7cn0KcHJldmlvdXNfdGltZSA8LSBwcm9jLnRpbWUoKVszXQpFc3RydXMgPC0gc3Vic2V0KEVzdHJ1cywgc3Vic2V0ID0gbkZlYXR1cmVfUk5BIDwgNjAwMCAmIHBlcmNlbnQubXQgPCA1KQpwcm9jLnRpbWUoKVszXSAtIHByZXZpb3VzX3RpbWUKYGBgCmBgYHtyfQpFc3RydXMKYGBgCiogQWZ0ZXIgZmlsdGVyaW5nIHN0ZXAsIHRoZSBkYXRhc2V0IGlzIGxlZnQgd2l0aAogKyAxOTQyMCBnZW5lcwogKyAyMTc0IGNlbGxzCgojIyBOb3JtYWxpemluZyB0aGUgZGF0YQoqIFBlcmZvcm0gbG9nLW5vcm1hbGl6YXRpb24gbWV0aG9kCiogRmVhdHVyZSBjb3VudHMgZm9yIGVhY2ggY2VsbCBhcmUgZGl2aWRlZCBieSB0aGUgdG90YWwgY291bnRzIGZvciB0aGF0IGNlbGwgYW5kIG11bHRpcGxpZWQgYnkgdGhlIHNjYWxlLmZhY3RvcgoqIHNjYWxlLmZhY3RvciBkZWZhdWx0IHZhbHVlID0gMTAsMDAwCiogVGhpcyBpcyB0aGVuIG5hdHVyYWwtbG9nIHRyYW5zZm9ybWVkIHVzaW5nIGxvZzFwCmBgYHtyfQpwcmV2aW91c190aW1lIDwtIHByb2MudGltZSgpWzNdCkVzdHJ1cyA8LSBOb3JtYWxpemVEYXRhKEVzdHJ1cywgbm9ybWFsaXphdGlvbi5tZXRob2QgPSAiTG9nTm9ybWFsaXplIiwgc2NhbGUuZmFjdG9yID0gMTAwMDApCnByb2MudGltZSgpWzNdIC0gcHJldmlvdXNfdGltZQpgYGAKIyMgSWRlbnRpZmljYXRpb24gb2YgaGlnaGx5IHZhcmlhYmxlIGZlYXR1cmVzIChmZWF0dXJlIHNlbGVjdGlvbikKYGBge3J9CnByZXZpb3VzX3RpbWUgPC0gcHJvYy50aW1lKClbM10KRXN0cnVzIDwtIEZpbmRWYXJpYWJsZUZlYXR1cmVzKEVzdHJ1cywgc2VsZWN0aW9uLm1ldGhvZCA9ICJkaXNwIiwgbmZlYXR1cmVzID0gNTAwMCkKcHJvYy50aW1lKClbM10gLSBwcmV2aW91c190aW1lCmBgYAojIyBQbG90dGluZyBoaWdobHkgdmFyaWFibGUgZmVhdHVyZXMKYGBge3J9CiMgSWRlbnRpZnkgdGhlIDEwIG1vc3QgaGlnaGx5IHZhcmlhYmxlIGdlbmVzCnRvcDEwIDwtIGhlYWQoVmFyaWFibGVGZWF0dXJlcyhFc3RydXMpLCAxMCkKdG9wMTAKYGBgCgpgYGB7ciwgZmlnLndpZHRoPTEwLGZpZy5oZWlnaHQ9NC41fQojIFBsb3QgdmFyaWFibGUgZmVhdHVyZXMgd2l0aCBhbmQgd2l0aG91dCBsYWJlbHMKcGxvdDEgPC0gVmFyaWFibGVGZWF0dXJlUGxvdChFc3RydXMpCnBsb3QyIDwtIExhYmVsUG9pbnRzKHBsb3QgPSBwbG90MSwgcG9pbnRzID0gdG9wMTAsIHJlcGVsID0gVFJVRSkKcGxvdDEgKyBwbG90MiAKYGBgCiMjIFJlZ3Jlc3Mgb3V0IGRhdGEgYW5kIHBlcmZvcm0gc2NhbGluZwoqIFJlZ3Jlc3Npbmcgb3V0IHRvdGFsIGNvdW50cyBwZXIgY2VsbCBhbmQgcGVyY2VudC5tdCBiZWZvcmUgc2NhbGluZy4gCiogVGFrZSBvdXQgbWl0b2Nob25kcmlhbCBnZW5lcyBiZWZvcmUgc2NhbGluZyAoYW5hbHl6aW5nKSB0aGUgZGF0YSAKKiBCZWNhdXNlIG1pdG9fZ2VuZXMgc2hvdWxkbid0IGJlIGFjY291bnRlZCBmb3IgY2VsbCBwb3B1bGF0aW9uIGFuYWx5c2lzLgpgYGB7cn0KcHJldmlvdXNfdGltZSA8LSBwcm9jLnRpbWUoKVszXQphbGwuZ2VuZXMgPC0gcm93bmFtZXMoRXN0cnVzKQpFc3RydXMgPC0gU2NhbGVEYXRhKEVzdHJ1cywgZmVhdHVyZXMgPSBhbGwuZ2VuZXMsIHZhcnMudG8ucmVncmVzcyA9IGMoIm5Db3VudF9STkEiLCJwZXJjZW50Lm10IiksIHNjYWxlLm1heCA9IDEwKQojIEV4cGxhbmF0aW9ucyBiZWxvdyBhcmUgZnJvbSBbU2V1cmF0XShodHRwczovL3NhdGlqYWxhYi5vcmcvc2V1cmF0L2FyY2hpdmUvdjMuMC9jZWxsX2N5Y2xlX3ZpZ25ldHRlLmh0bWwpCiMgdmFycy50by5yZWdyZXNzID0gUmVncmVzc091dCBpbiBTZXVyYXQgdmVyc2lvbiAxLjQgb3IgbG93ZXIKIyBIb3dldmVyLCBhcyB0aGUgcmVzdWx0cyBvZiB0aGlzIHByb2NlZHVyZSBhcmUgc3RvcmVkIGluIHRoZSBzY2FsZWQgZGF0YSBzbG90ICh0aGVyZWZvcmUgb3ZlcndyaXRpbmcgdGhlIG91dHB1dCBvZiBTY2FsZURhdGEpIAojIFRoaXMgZnVuY3Rpb25hbGl0eSBpcyBtZXJnZWQgaW50byB0aGUgU2NhbGVEYXRhIGZ1bmN0aW9uIGl0c2VsZi4KcHJvYy50aW1lKClbM10gLSBwcmV2aW91c190aW1lCmBgYAojIyBQZXJmb3JtIGxpbmVhciBkaW1lbnNpb25hbCByZWR1Y3Rpb24gKFBDQSkKYGBge3J9CnByZXZpb3VzX3RpbWUgPC0gcHJvYy50aW1lKClbM10KRXN0cnVzIDwtIFJ1blBDQShFc3RydXMsIGZlYXR1cmVzID0gVmFyaWFibGVGZWF0dXJlcyhvYmplY3QgPSBFc3RydXMpKQpwcm9jLnRpbWUoKVszXSAtIHByZXZpb3VzX3RpbWUKYGBgCgojIyBFeGFtaW5lIGFuZCB2aXN1YWxpemUgUENBIHJlc3VsdHMgYSBmZXcgZGlmZmVyZW50IHdheXMKYGBge3J9CnByaW50KEVzdHJ1c1tbInBjYSJdXSwgZGltcyA9IDE6NSwgbmZlYXR1cmVzID0gNSkKYGBgCgpgYGB7cn0KVml6RGltTG9hZGluZ3MoRXN0cnVzLCBkaW1zID0gMToyLCByZWR1Y3Rpb24gPSAicGNhIikKYGBgCgpgYGB7cn0KRGltUGxvdChFc3RydXMsIHJlZHVjdGlvbiA9ICJwY2EiKSArIGdndGl0bGUobGFiZWwgPSAnSW5jbHVkaW5nIGltbXVuZSBjZWxscycpCmBgYAoKYGBge3IsIGZpZy53aWR0aD0xMn0KRmVhdHVyZVBsb3QoRXN0cnVzLCByZWR1Y3Rpb24gPSAicGNhIiwgZmVhdHVyZXMgPSBjKCdPdmdwMScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0ZveGoxJywgJ0lnZjEnLCAnUGR4aycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0Z4eWQ0JywgJ0JzZycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1NlcnBpbmExZScsICdLcnQxOScpKQpgYGAKYGBge3IsIGZpZy53aWR0aD0xMn0KRmVhdHVyZVBsb3QoRXN0cnVzLCByZWR1Y3Rpb24gPSAicGNhIiwgZmVhdHVyZXMgPSBjKCdEY24nLCAnUGF4OCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnRXBoeDInLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdQZWNhbTEnLCAnUGRnZnJhJywgJ015aDExJywgJ0F0cDJiNCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0NkNTInKSkKYGBgCgojIyBEZXRlcm1pbmUgdGhlIOKAmGRpbWVuc2lvbmFsaXR54oCZIG9mIHRoZSBkYXRhCiogU2V1cmF0IHR1dG9yaWFsIHVzZXMgSmFja1N0cmF3KCkgYW5kIGFuZCBTY29yZUphY2tTdHJhdyB0byBkZXRlcm1pbmUgZGltZW5zaW9uYWxpdHkKKiB0aGUgc3ludGF4IGlzOiAKICArIEVzdHJ1cyA8LSBKYWNrU3RyYXcoRXN0cnVzLCBudW0ucmVwbGljYXRlID0gMTAwKQogICsgRXN0cnVzIDwtIFNjb3JlSmFja1N0cmF3KEVzdHJ1cywgZGltcyA9IDE6MjApCiogSG93ZXZlciwgaXQgdGFrZXMgdmVyeSBsb25nLiAKKiBBbiBlbGJvdyBwbG90IG9mdGVuIGNvcnJlc3BvbmRzIHdlbGwgZW5vdWdoIHdpdGggdGhlIHNpZ25pZmljYW50IGRpbXMgYW5kIGlzIG11Y2ggZmFzdGVyIHRvIHJ1biB0aGFuIEphY2tzdHJhdwoqIEFjY29yZGluZyB0byB0aGUgZ3JhcGggYmVsb3csIGNob29zZSB0aGUgZmlyc3QgMzcgcHJpbmNpcGxlIGNvbXBvbmVudHMgdG8gdXNlCmBgYHtyfQpFbGJvd1Bsb3QoRXN0cnVzLCBuZGltcyA9IDQwKQpgYGAKIyMgRmluZCBuZWlnaGJvcnMKKiBEaW1zID0gZGltZW5zaW9ucyA9IGRldGVybWluZWQgYXMgMzcgZnJvbSB0aGUgYWJvdmUgc3RlcApgYGB7cn0KcHJldmlvdXNfdGltZSA8LSBwcm9jLnRpbWUoKVszXQpFc3RydXNfbmV3IDwtIEZpbmROZWlnaGJvcnMoRXN0cnVzLCBkaW1zID0gMTozNywgay5wYXJhbSA9IDEwKQpwcm9jLnRpbWUoKVszXSAtIHByZXZpb3VzX3RpbWUKYGBgCiMjIEZpbmQgY2VsbCBjbHVzdGVycyB1c2luZyBMZWlkZW4ncyBtZXRob2QKYGBge3J9CiMgQWxnb3JpdGhtID0gNCBzcGVjaWZpZXMgTGVpZGVuJ3MgbWV0aG9kCnByZXZpb3VzX3RpbWUgPC0gcHJvYy50aW1lKClbM10KRXN0cnVzX25ldyA8LSBGaW5kQ2x1c3RlcnMoRXN0cnVzX25ldywgcmVzb2x1dGlvbiA9IDAuMTIsIGFsZ29yaXRobSA9IDQpCnByb2MudGltZSgpWzNdIC0gcHJldmlvdXNfdGltZQpgYGAKIyMgQ29uc3RydWN0aW5nIFVNQVAgcGxvdApgYGB7cn0KcHJldmlvdXNfdGltZSA8LSBwcm9jLnRpbWUoKVszXQpFc3RydXNfbmV3IDwtIFJ1blVNQVAoRXN0cnVzX25ldywgZGltID0gMTozNykgCnByb2MudGltZSgpWzNdIC0gcHJldmlvdXNfdGltZQpgYGAKIyMgVmlzdWFsaXphdGlvbgpgYGB7cn0KRGltUGxvdChFc3RydXNfbmV3LCByZWR1Y3Rpb24gPSAidW1hcCIpICsgZ2d0aXRsZShsYWJlbCA9ICdJbmNsdWRpbmcgaW1tdW5lIGNlbGxzJykKYGBgCmBgYHtyLCBmaWcud2lkdGg9MTJ9CkZlYXR1cmVQbG90KEVzdHJ1c19uZXcsIHJlZHVjdGlvbiA9ICJ1bWFwIiwgZmVhdHVyZXMgPSBjKCdPdmdwMScsICdGb3hqMScsICdEY24nLCAnU2VycGluYTFlJywgJ1NwcnIyZicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdGeHlkNCcsICdMeTZhJywgJ0VwY2FtJywgJ0tydDE5JywgJ1ZpbScsICdQZGdmcmEnKSkKYGBgCgpgYGB7ciwgZmlnLndpZHRoPTEyfQpGZWF0dXJlUGxvdChFc3RydXNfbmV3LCByZWR1Y3Rpb24gPSAidW1hcCIsIGZlYXR1cmVzID0gYygnTXloMTEnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdEa2syJywgJ1NsaXRyazYnLCAnRGlvMicsICdTbW9jMicsICdUZXMnLCAnRGFiMScsICdDYW1rMWQnLCAnUGVjYW0xJywgJ0NkNTInLCdNa2k2NycpKQoKYGBgCiMjIFJlbW92aW5nIGltbXVuZSBjZWxscwpgYGB7ciwgZmlnLndpZHRoPTEyfQpzdWJfRXN0cnVzID0gc3Vic2V0KHggPSBFc3RydXNfbmV3LCBpZGVudCA9IGMoMSwyLDMsNCw1LDcsOCw5LDEwLDEyKSkKRGltUGxvdChzdWJfRXN0cnVzLCByZWR1Y3Rpb24gPSAidW1hcCIpICsgZ2d0aXRsZShsYWJlbCA9ICdJbW11bmUgY2VsbHMgcmVtb3ZlZCcpCmBgYApgYGB7ciwgZmlnLndpZHRoPTEyfQpGZWF0dXJlUGxvdChzdWJfRXN0cnVzLCByZWR1Y3Rpb24gPSAidW1hcCIsIGZlYXR1cmVzID0gYygnT3ZncDEnLCAnRm94ajEnLCAnRnh5ZDQnLCAnQ3hjbDE3JywgJ015aDExJywgJ0NkNTInLCAnVHdpc3QyJywgJ1BlY2FtMScpKQpgYGAKYGBge3IsIGZpZy53aWR0aD0xMn0KRmVhdHVyZVBsb3Qoc3ViX0VzdHJ1cywgcmVkdWN0aW9uID0gInVtYXAiLCBmZWF0dXJlcyA9IGMoJ1BkZ2ZyYScsICdFcGh4MicsICdEY24nLCAnS3J0MTknLCAnRXBjYW0nLCAnVmltJywnTWtpNjcnKSkKYGBgCmBgYHtyfQpzdWJfRXN0cnVzCmBgYAoqIEFmdGVyIHJlbW92aW5nIGltbXVuZSBjZWxscywgdGhlIGRhdGFzZXQgaXMgbGVmdCB3aXRoOgogICsgMTk0MjAgZ2VuZXMKICArIDE5MjUgY2VsbHMKCiMjIFJlLXJ1biBhbmFseXNpcyBhZnRlciBleGNsdWRpbmcgaW1tdW5lIGNlbGxzCmBgYHtyfQpwcmV2aW91c190aW1lIDwtIHByb2MudGltZSgpWzNdCnN1Yl9Fc3RydXMgPC0gUnVuUENBKHN1Yl9Fc3RydXMsIGZlYXR1cmVzID0gVmFyaWFibGVGZWF0dXJlcyhvYmplY3QgPSBzdWJfRXN0cnVzKSkKcHJvYy50aW1lKClbM10gLSBwcmV2aW91c190aW1lCmBgYAoKYGBge3IsIGZpZy53aWR0aD0xMn0KRGltUGxvdChzdWJfRXN0cnVzLCByZWR1Y3Rpb24gPSAicGNhIikgKyBnZ3RpdGxlKGxhYmVsID0gJ0ltbXVuZSBjZWxscyByZW1vdmVkJykKYGBgCgpgYGB7ciwgZmlnLndpZHRoPTEyfQpGZWF0dXJlUGxvdChzdWJfRXN0cnVzLCByZWR1Y3Rpb24gPSAicGNhIiwgZmVhdHVyZXMgPSBjKCdFc3IxJywgJ092Z3AxJywgJ0ZveGoxJywgJ0Z4eWQ0JywgJ0VwaHgyJywgJ0RjbicpKQpgYGAKCmBgYHtyLCBmaWcud2lkdGg9MTJ9CkZlYXR1cmVQbG90KHN1Yl9Fc3RydXMsIHJlZHVjdGlvbiA9ICJwY2EiLCBmZWF0dXJlcyA9IGMoJ0ZvcycsICdLY25lMycsICdTZXJwaW5hMWUnLCAnQ3JhYnAyJywgJ1BncicsICdWaW0nKSkKYGBgCmBgYHtyfQpwcmV2aW91c190aW1lIDwtIHByb2MudGltZSgpWzNdCnN1Yl9Fc3RydXNfbmV3IDwtIEZpbmROZWlnaGJvcnMoc3ViX0VzdHJ1cywgZGltcyA9IDE6MzcpCnByb2MudGltZSgpWzNdIC0gcHJldmlvdXNfdGltZQpgYGAKCmBgYHtyfQpwcmV2aW91c190aW1lIDwtIHByb2MudGltZSgpWzNdCnN1Yl9Fc3RydXNfbmV3IDwtIEZpbmRDbHVzdGVycyhzdWJfRXN0cnVzX25ldywgcmVzb2x1dGlvbiA9IDAuMDQ1LCBhbGdvcml0aG0gPSA0KQpwcm9jLnRpbWUoKVszXSAtIHByZXZpb3VzX3RpbWUKYGBgCgpgYGB7cn0KcHJldmlvdXNfdGltZSA8LSBwcm9jLnRpbWUoKVszXQpzdWJfRXN0cnVzX25ldyA8LSBSdW5VTUFQKHN1Yl9Fc3RydXNfbmV3LCBkaW0gPSAxOjM3KQpwcm9jLnRpbWUoKVszXSAtIHByZXZpb3VzX3RpbWUKYGBgCgpgYGB7ciwgZmlnLndpZHRoPTEwfQpEaW1QbG90KHN1Yl9Fc3RydXNfbmV3LCByZWR1Y3Rpb24gPSAidW1hcCIpICsgZ2d0aXRsZShsYWJlbCA9ICdSZXNjYWxlIFVNQVAgYWZ0ZXIgcmVtb3ZpbmcgSW1tdW5lIGNlbGxzJykKYGBgCmBgYHtyLCBmaWcud2lkdGg9MTJ9CkZlYXR1cmVQbG90KHN1Yl9Fc3RydXNfbmV3LCByZWR1Y3Rpb24gPSAidW1hcCIsIGZlYXR1cmVzID0gYygnT3ZncDEnLCAnRm94ajEnLCAnQ3JhYnAyJywgJ015aDExJywgJ1d0MScsICdTMTAwZycsICdTcHJyMmYnLAogICAgICAgICAgICAgICAgICAnRnh5ZDQnKSkKYGBgCgpgYGB7ciwgZmlnLndpZHRoPTEyfQpGZWF0dXJlUGxvdChzdWJfRXN0cnVzX25ldywgcmVkdWN0aW9uID0gInVtYXAiLCBmZWF0dXJlcyA9IGMoJ0RjbicsICdQYXg4JywgJ1BheDInLCAnVHdpc3QyJywgJ0lnZjEnLCAnU2VycGluYTFlJywgJ1BkZ2ZyYScsICdLcnQxOScsICdNa2k2NycpKQpgYGAKIyMgTWFya2VyIGdlbmVzCmBgYHtyfQptYXJrZXJfZ2VuZXMgPSBjKCdFcGNhbScsICdLcnQxNScsJ0tydDgnLCdLcnQxOScsJ1ZpbScsJ1BkZ2ZyYScsJ1R3aXN0MicsICdTcHJyMmYnLCAnRnh5ZDQnLCAnSWdmYnA2JywKICAgICAgICAgICAgICAgICAnQWN0YTInLCAnTXloMTEnLCdGb3hqMScsJ092Z3AxJywnV3QxJywnU2VycGluYTFlJywnUzEwMGcnLCdQZWNhbTEnKQpgYGAKCiMjIFVNQVAgZm9yIG1hcmtlciBnZW5lcwpgYGB7ciwgZmlnLndpZHRoPTEyfQpGZWF0dXJlUGxvdChzdWJfRXN0cnVzX25ldywgcmVkdWN0aW9uID0gInVtYXAiLCBmZWF0dXJlcyA9IGMoJ0VwY2FtJywgJ0tydDE1JywnS3J0OCcsJ0tydDE5JywnVmltJywnUGRnZnJhJywnVHdpc3QyJywgJ1NwcnIyZicsICdGeHlkNCcpKQpgYGAKCmBgYHtyLCBmaWcud2lkdGg9MTJ9CkZlYXR1cmVQbG90KHN1Yl9Fc3RydXNfbmV3LCByZWR1Y3Rpb24gPSAidW1hcCIsIGZlYXR1cmVzID0gYygnSWdmYnA2JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdBY3RhMicsICdNeWgxMScsJ0ZveGoxJywnT3ZncDEnLCdXdDEnLCdTZXJwaW5hMWUnLCdTMTAwZycsJ1BlY2FtMScpKQpgYGAKCiMjIFJlbmFtZSBjbHVzdGVycwpgYGB7cn0KQ2x1c3Rlci5uYW1lcyA8LSBjKCcxIFNlY3JldG9yeV9JbmZBbXAnLAogICAgICAgICAgICAgICAgICAgJzIgQ2lsaWF0ZWRfSW5mQW1wJywKICAgICAgICAgICAgICAgICAgICczIEZpYnJvYmxhc3QgUGRnZnJhKycsCiAgICAgICAgICAgICAgICAgICAnNCBTZWNyZXRvcnlfSXN0aFVUSicsCiAgICAgICAgICAgICAgICAgICAnNSBGaWJyb2JsYXN0IFBkZ2ZyYS0nLAogICAgICAgICAgICAgICAgICAgJzYgTXVzY2xlJykKbmFtZXMoQ2x1c3Rlci5uYW1lcykgPC0gbGV2ZWxzKHN1Yl9Fc3RydXNfbmV3KQpzdWJfRXN0cnVzX25ldyA8LSBSZW5hbWVJZGVudHMoc3ViX0VzdHJ1c19uZXcsIENsdXN0ZXIubmFtZXMpCkRpbVBsb3Qoc3ViX0VzdHJ1c19uZXcsIHJlZHVjdGlvbiA9ICJ1bWFwIiwgcHQuc2l6ZSA9IDAuNSkgKyBzY2FsZV9jb2xvcl9tYW51YWwobGFiZWxzID0gQ2x1c3Rlci5uYW1lcyx2YWx1ZXM9YygnZ3JlZW4nLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncmVkJywnYmx1ZScsJ29yYW5nZScsJ2dyZXknLCd5ZWxsb3cnLCdwaW5rJykpCmBgYApgYGB7ciwgZmlnLndpZHRoPTEyfQpEb3RQbG90KHN1Yl9Fc3RydXNfbmV3LCBmZWF0dXJlcyA9IG1hcmtlcl9nZW5lcywgZ3JvdXAuYnkgPSBzdWJfRXN0cnVzX25ld0BtZXRhLmRhdGEkaWRlbnQpICsgIAogIHRoZW1lKGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGFuZ2xlID0gOTAsIHZqdXN0ID0gMC41LCBoanVzdD0xKSkgKwogIHNjYWxlX3lfZGlzY3JldGUobGFiZWxzID0gQ2x1c3Rlci5uYW1lcykKYGBgCiMjIE51bWJlciBvZiBjZWxscyBpbiBlYWNoIGNsdXN0ZXJzCmBgYHtyfQp0YWJsZShzdWJfRXN0cnVzX25ld0BhY3RpdmUuaWRlbnQsIHN1Yl9Fc3RydXNfbmV3QG1ldGEuZGF0YSRvcmlnLmlkZW50KQpgYGAKCiMjIEV4dHJhY3QgdG9wIGdlbmVzIGZvciBlYWNoIGNsdXN0ZXIKKiBEZWZhdWx0IG1ldGhvZCBvZiBmaW5kaW5nIGhpZ2hseSBleHByZXNzZWQgZ2VuZXMgZm9yIEZpbmRBbGxNYXJrZXJzIGlzIFdpbGNveG9uIFJhbmsgU3VtIHRlc3QKYGBge3J9CnN1Yl9Fc3RydXNfbmV3X21hcmtlcnMgPC0gRmluZEFsbE1hcmtlcnMoc3ViX0VzdHJ1c19uZXcsIG9ubHkucG9zID0gVFJVRSwgbWluLnBjdCA9IDAuMjUsIGxvZ2ZjLnRocmVzaG9sZCA9IDAuMjUpCnN1Yl9Fc3RydXNfbmV3X21hcmtlcnMgJT4lCiAgICBncm91cF9ieShjbHVzdGVyKSAlPiUKICAgIHNsaWNlX21heChuID0gMjAsIG9yZGVyX2J5ID0gYXZnX2xvZzJGQykKYGBgCiMjIEhlYXQgbWFwIGZvciB0b3AgMTAgZ2VuZXMgaW4gZWFjaCBjbHVzdGVyCmBgYHtyLCBmaWcud2lkdGg9MTB9CnN1Yl9Fc3RydXNfbmV3X21hcmtlcnMgJT4lCiAgICBncm91cF9ieShjbHVzdGVyKSAlPiUKICAgIHRvcF9uKG4gPSAxMCwgd3QgPSBhdmdfbG9nMkZDKSAtPiB0b3AxMApEb0hlYXRtYXAoc3ViX0VzdHJ1c19uZXcsIGZlYXR1cmVzID0gdG9wMTAkZ2VuZSkgKyBOb0xlZ2VuZCgpCmBgYAoK